ID: 38091 Updated by: ka...@php.net Reported By: danb1974 at gmail dot com -Status: Closed +Status: Assigned Bug Type: Mail related Operating System: Windows PHP Version: * Assigned To: kalle
Previous Comments: ------------------------------------------------------------------------ [2009-06-30 11:40:52] ka...@php.net This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. ------------------------------------------------------------------------ [2009-06-27 11:31:55] ka...@php.net Patch available at: http://php.tuxxedo.net/patches/bugs/38091.patch ------------------------------------------------------------------------ [2009-06-22 13:52:00] rick at longbowgames dot com This isn't really a bug in Windows, since the official documentation for Winsock[1] clearly states that the name returned by gethostname "can be a simple host name, or it can be a fully qualified domain name." Like many parts of Winsock, this is slightly different from the typical behaviour of the POSIX function of the same name, which usually returns a FQDN. Actually, while the name returned by gethostname() is *usually* a FQDN on a POSIX machine, I don't actually think it's guaranteed there, either. For a C solution, the code given by danb1974 should work. An easy way to do it in pure PHP is, instead of just calling gethostname(), call gethostbyaddr(gethostbyname(gethostname())). Thanks, -Rick- [1] http://msdn.microsoft.com/en-us/library/ms738527(VS.85).aspx ------------------------------------------------------------------------ [2009-06-20 08:53:14] paj...@php.net Reopen, seems to be still valid. ------------------------------------------------------------------------ [2006-07-14 07:45:01] danb1974 at gmail dot com It seems it's not enough to just gethostname. You have to do something like this (this is not actual production code): hostent *hent; gethostname(hname, sizeof(hname)); hent = gethostbyname(hname); strcpy(hostname, hent->h_name); // h_name is the official name according to winsock api ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/38091 -- Edit this bug report at http://bugs.php.net/?id=38091&edit=1