小弟最近做了一段程序,在远程机房的linux的apache上跑,代码如下$ip = gethostbyname("www.google.com");
echo "IP is:".$ip;但是返回的ip却是www.google.com,同样的代码在windows上跑却返回了64.233.189.104,即使是本地linux上也也是返回64.233.189.104google了很久,可能是远程linux上的DNS问题,但是就是不知道如何解决,希望高手指点一二。
echo "IP is:".$ip;但是返回的ip却是www.google.com,同样的代码在windows上跑却返回了64.233.189.104,即使是本地linux上也也是返回64.233.189.104google了很久,可能是远程linux上的DNS问题,但是就是不知道如何解决,希望高手指点一二。
解决方案 »
- 谁能给说说php中的oop技术!
- 【高分求助】php如何发送带附件的邮件(Windows Server 2003)
- php + sqlite 的内存数据表操作问题
- PHP的一个PREG_REPLACE的使用
- 新手上路求助
- 紧急问题。。。。。。。。。。。。。。。。。。
- 时间格式问题??????急急急 在线等候
- 我是成电的,希望通过这个版多认识一些PHP同志!!!
- 求救!在php中怎样获得checkbox提交的值!
- [color=#FF0000]Fatal error: Allowed memory size of 1073741824 bytes exhausted
- PHP如何区得swf舞台尺寸?
- phpmailer问题
如果不能解析出IP,那就需要给你的linux设置DNS
修改 /etc/resolv.conf文件中nameserver的配置
/etc/resolv.conf中的nameserver是做过配置的也就是说在linux上上网下载东西是没有问题的,但是就是在执行php的函数的时候,解析不出ip,会不会是php或者是apache的问题
if(ip2long($dbarr['site_ip'])!==-1)list($dbarr['site_ip']) = gethostbynamel( $config['SITE_NAME']);
//更新HOST信息
if(ip2long($dbarr['site_ip'])!==-1)
if($dbarr['site_ip']) $host_name = gethostbyaddr($dbarr['site_ip']);
function getAddrByHost($host, $timeout = 3) {
$query = `nslookup -timeout=$timeout -retry=1 $host`;
if(preg_match('/\nAddress: (.*)\n/', $query, $matches))
return trim($matches[1]);
return $host;
}