Re: How do I get reliable COMPUTERNAME?

From: Date: Thu, 05 Nov 2009 19:03:39 +0000
Subject: Re: How do I get reliable COMPUTERNAME?
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-299658@lists.php.net to get a copy of this message
Andrew Ballard wrote: > I want to store the name of the computer that is executing a script in > some log tables. (Our servers are load balanced, and I'd like to be > able to determine which physical machine is serving each request.) > > On my development machine (Windows PC running the debugger in Zend > Studio), I can find the name in three places: > > getenv('COMPUTERNAME') > $_ENV['COMPUTERNAME'] > $_SERVER['COMPUTERNAME'] > > On the development server, only the first works; $_ENV and $_SERVER > both return NULL and throw an undefined index notice. > > I'm concerned about the reliability of all of these methods, since it > seems that they are not always available and all three can be easily > overridden inside a script. However, I notice that the header > generated by phpinfo() remains correct even when I manually spoofed > all three values on my development machine. Is there a reliable way to > find this value? > > Andrew > Well, I looked at all the variables that are available. Then I looked at the data in the output of phpinfo(). The only place that I can find the information that you are looking for is available in the "PHP Configuration" section and it is in the System information. So, looking at the phpinfo() page, I noticed the first comment down had a method/function for converting the output of phpinfo() into a multidimensional array. Taking the output of that users function, you can access the data the data you are looking for. So, here is a link to the phpinfo() page. http://php.net/phpinfo From there, get the function called phpinfo_array() take the output of that and run it through the following set of commands. $data = phpinfo_array(TRUE); list(, $server_name) = explode(' ', $data['PHP Configuration']['System']); print( $server_name ); This will give you what you are looking for. Jim

« previous php.general (#299658) next »