|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2001-09-25 16:22 UTC] brooks at netgate dot net
This is basically the same report as 8754, 12678, and 8856. The gethostbyname function returns the name instead of the IP address. The host is configured correctly and names can be resolved from the shell using nslookup, dig, etc. This bug first appeared in 4.0.4 (although I didn't know it until now) and is present in 4.0.6 and 4.0.8-dev (php4-200109251335.tar.gz - latest from the snapshots dir as of 9/26/01). I regressed the bug back to my previous version of 3.0.14 and the bug is not present in that version. I have tried both gethostbyname (returns the name) and gethostbynamel (returns 0 items in the array). PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Nov 06 06:00:02 2025 UTC |
php does not require a local dns server to be running unless your system's C library gethostbyname() call does (which seems extraordinarily unlikely). here's a small c program you can use to test your system's gethostbyname(). if it says that no ip address is found, that's the exact same situation in which php's gethostbyname() will return the original hostname. #include <stdlib.h> #include <stdio.h> #include <netdb.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> int main(int argc, char **argv) { struct hostent *host; struct in_addr in; if (argc != 2) { fprintf(stderr,"usage: %s hostname\n", argv[0]); exit(1); } host = gethostbyname(argv[1]); if (host->h_length) { memcpy(&in.s_addr, *(host->h_addr_list), sizeof(in.s_addr)); fprintf(stderr,"%s\n",inet_ntoa(in)); } else { fprintf(stderr,"no ip address found for %s\n", argv[1]); exit(1); } exit(0); }I'm with you... The program below works fine, as does dig, nslookup, perl, etc. So, I'm at a loss as to why PHP doesn't work. I sent an email to the BSDI users list and everyone is convinced that you MUST run a local named server for PHP to work correctly. This makes no sense (to me). vp3: {4} % ldd ../cgi-bin/php libdl.so => /shlib/libdl.so (0x48169000) libm.so => /shlib/libm.so.0.0 (0x4816d000) libgcc.so.1 => /shlib/libgcc.so.1 (0x4817f000) libc.so.1 => /shlib/libc.so.1 (0x4818b000) vp3: {5} % ldd gethostbyname libgcc.so.1 => /shlib/libgcc.so.1 (0x48052000) libc.so.1 => /shlib/libc.so.1 (0x4805e000)