如果一个域名对应多个IP,取得指定IP下的网页内容
2009-05-08 01:56
627 查看
<?php
class Files
{
public static function getUrlContentList($url, $ip = '')
{
if (empty ( $url )) {
return false;
}
$parsed = parse_url ( $url );
$host = $parsed ['host'];
$uri = $parsed ['path'] ? $parsed ['path'] : '';
$uri .= $parsed ['query'] ? '?' . $parsed ['query'] : '';
$uri .= $parsed ['fragment'] ? '#' . $parsed ['fragment'] : '';
unset ( $parsed );
$ips = gethostbynamel ( $host );
$rets = array ();
if (! empty ( $ip )) {
if (! in_array ( $ip, $ips )) {
return false;
} else {
$rets [] = self::HttpVisit ( $ip, $host, $uri );
return $rets;
}
}
foreach ( $ips as $ip ) {
$rets [] = self::HttpVisit ( $ip, $host, $uri );
}
return $rets;
}
public static function HttpVisit($ip, $host, $uri)
{
$errstr = '';
$errno = '';
$fp = fsockopen ( $ip, 80, $errno, $errstr, 90 );
if (! $fp) {
return false;
} else {
$out = "GET {$uri} HTTP/1.1/r/n";
$out .= "Host:{$host}/r/n";
$out .= "Connection: close/r/n/r/n";
fputs ( $fp, $out );
while ( $line = fread ( $fp, 4096 ) ) {
$response .= $line;
}
fclose ( $fp );
//去掉Header头信息
$pos = strpos ( $response, "/r/n/r/n" );
$response = substr ( $response, $pos + 4 );
return $response;
}
}
}
/*
调用方法:
$data = Files::getUrlContentList('http://xxx/xxx.htm', '192.168.xxx.xxx');
print_r($data);
*/
?>
class Files
{
public static function getUrlContentList($url, $ip = '')
{
if (empty ( $url )) {
return false;
}
$parsed = parse_url ( $url );
$host = $parsed ['host'];
$uri = $parsed ['path'] ? $parsed ['path'] : '';
$uri .= $parsed ['query'] ? '?' . $parsed ['query'] : '';
$uri .= $parsed ['fragment'] ? '#' . $parsed ['fragment'] : '';
unset ( $parsed );
$ips = gethostbynamel ( $host );
$rets = array ();
if (! empty ( $ip )) {
if (! in_array ( $ip, $ips )) {
return false;
} else {
$rets [] = self::HttpVisit ( $ip, $host, $uri );
return $rets;
}
}
foreach ( $ips as $ip ) {
$rets [] = self::HttpVisit ( $ip, $host, $uri );
}
return $rets;
}
public static function HttpVisit($ip, $host, $uri)
{
$errstr = '';
$errno = '';
$fp = fsockopen ( $ip, 80, $errno, $errstr, 90 );
if (! $fp) {
return false;
} else {
$out = "GET {$uri} HTTP/1.1/r/n";
$out .= "Host:{$host}/r/n";
$out .= "Connection: close/r/n/r/n";
fputs ( $fp, $out );
while ( $line = fread ( $fp, 4096 ) ) {
$response .= $line;
}
fclose ( $fp );
//去掉Header头信息
$pos = strpos ( $response, "/r/n/r/n" );
$response = substr ( $response, $pos + 4 );
return $response;
}
}
}
/*
调用方法:
$data = Files::getUrlContentList('http://xxx/xxx.htm', '192.168.xxx.xxx');
print_r($data);
*/
?>
相关文章推荐
- 同一域名对应多个IP时,获取指定IP服务器的远程网页内容
- 函数用途:同一域名对应多个IP时,获取指定服务器的远程网页内容
- 同一域名对应不同IP,访问指定主机文件内容的方法
- 同一域名对应不同IP,访问指定主机文件内容的方法
- 同一域名对应多个IP时,PHP获取远程网页内容的函数
- 同一域名对应多个IP时,PHP获取远程网页内容的函数[原创]
- DNS负载均衡技术-同一个域名对应多个ip的方法
- 同一域名对应多个IP时,PHP获取远程网页内容的函数[转]
- DNS负载均衡技术-同一个域名对应多个ip的方法
- 微信网页授权一个回调域名对应多个项目
- 一个域名对应多个IP
- 一个服务器上面配置多个IP ,实现指定IP的域名请求
- 一个服务器ip怎样对应多个ssl证书
- 负载均衡实现,一个域名对应多个IP地址
- 多个域名指定到同一个IP下,访问时如何决定改跳到哪个文件目录
- 微信OAuth2.0网页授权设置一个域名需多个域名使用的问题
- DNS负载均衡技术--同一个域名对应多个ip的方法
- Tomcat虚拟主机配置 一个Ip对应多个项目
- Java 抓取网页内容,获取指定服务器IP
- 本地电脑如何配置一个域名对应多个网址