社区
基础编程
帖子详情
如何虚拟IP地址?
notepad
2011-01-23 09:35:43
我的网站是做采集的。结果有一天IP被相关的采集源站点给屏蔽了 再换IP结果又屏蔽,我想通过PHP的方式虚拟一个IP地址然后再去采集相关站点。
我试过单纯的修改ip头 但是效果不行,因为这个无法欺骗相关站点的统计代码。
$headers['CLIENT-IP'] = $ip ;
$headers['X-FORWARDED-FOR'] = $ip ;
请前辈们帮我一下。
...全文
1040
4
打赏
收藏
如何虚拟IP地址?
我的网站是做采集的。结果有一天IP被相关的采集源站点给屏蔽了 再换IP结果又屏蔽,我想通过PHP的方式虚拟一个IP地址然后再去采集相关站点。 我试过单纯的修改ip头 但是效果不行,因为这个无法欺骗相关站点的统计代码。 $headers['CLIENT-IP']= $ip ; $headers['X-FORWARDED-FOR']= $ip ; 请前辈们帮我一下。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ihefe
2011-01-24
打赏
举报
回复
使用代理
mumubangditu
2011-01-23
打赏
举报
回复
这个也可以吗?IP不是电信控制的吗?可能只能用代理IP了。
skyaspnet
2011-01-23
打赏
举报
回复
看一下这个:
php抓取proxycn.com数据并使用代理下载cnet软件刷下载量
由于工作需要最近写了一个php抓取proxycn.com数据并使用代理下载cnet软件刷下载量的小工具.
1、抓取代理中国代理列表数据
set_time_limit(0);
/**
* @param $url 要抓取的链接地址
* @param $file 写入数据的文件名
* @return ''
*/
function FetchProxyCn($url, $file)
{
if(!empty($url))
{
$html = file_get_contents($url);
preg_match('/<td background="img\/table_4.gif">(.*?)<td background="img\/table_5.gif">/isU', $html, $list);
//echo $list[1];
preg_match('/<script language="JavaScript">(.*?)<\/script>/isU', $list[1], $iport);
$str = str_replace('</SCRIPT>','{SCRIPT}',$iport[1]);
$str = explode('{SCRIPT}',$str);
unset($str[0]);
unset($str[count($str)]);
$str = array_values($str);
for($i = 0;$i < count($str); $i++)
{
preg_match("/<TD class=\"list\">(\d{1,4})<\/TD>/isU", $str[$i], $port);
$port = $port[1];
preg_match("/whois=(.*) /",$str[$i],$ip);
$ip = $ip[1];
preg_match("/HTTP<\/TD><TD class=\"list\">(.*?)<\/TD>/is", $str[$i], $area);
$area = $area[1];
$string = $ip.':'.$port.':'.$area."\r\n";
wfile($file, $string, 'a');
}
}
}
/**
* 写文件
* @param string $file 文件路径
* @param string $str 写入内容
* @param char $mode 写入模式
*/
function wfile($file,$str,$mode='w')
{
$oldmask = @umask(0);
$fp = @fopen($file,$mode);
@flock($fp, 3);
if(!$fp)
{
Return false;
}
else
{
@fwrite($fp,$str);
@fclose($fp);
@umask($oldmask);
Return true;
}
}
$file = 'proxycn.txt';
if(!file_exists($file))
{
for($i = 1; $i <= 116; $i++)
{
$url = "http://www.proxycn.com/html_proxy/http-$i.html";
FetchProxyCn($url, $file);
}
}else{
$ctime = filectime($file);
$now = time();
$timediff = $now - $ctime;
if($timediff > 1)
{
unlink($file);
for($i = 1; $i <= 116; $i++)
{
$url = "http://www.proxycn.com/html_proxy/http-$i.html";
FetchProxyCn($url, $file);
}
}
}保存代码为proxycn.php, 这段代码会抓取代理中国列表数据并且在当前目录生成名为proxycn.txt的文本文件,格式为
IP:Port:地区
2、抓取cnet页面内容,分析得到最终下载链接.
header("Expires: Mon, 26 Jul 1970 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
$ip = $_SERVER["REMOTE_ADDR"];
$product_name = $_GET['product_name'];
$product_url = $_GET['product_url'];
$time = $_GET['time'];
$proxy = $_GET['proxy'];
$type = $_GET['type']; // $type == 1 开启代理否者关闭代理
$file_name = $product_name.'.txt';
if(file_exists($file_name))
{
unlink($file_name);
}
/**
* Curl设置代理访问网页
* @param sting $url 需要通过代理访问的URL
* @param string $user_agent 浏览器头
* @param string $proxy 代理地址
*/
function curl_string ($url,$user_agent,$proxy)
{
$ch = curl_init();
curl_setopt ($ch, CURLOPT_PROXY, $proxy);
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt ($ch, CURLOPT_COOKIEJAR, "c:\cookie.txt");
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_TIMEOUT, 120);
$result = curl_exec ($ch);
curl_close($ch);
return $result;
}
define('BAIDU_URL',$product_url);
if(!empty($product_name) && !empty($product_url))
{
// 开启代理访问
if($type == 1 && !empty($proxy))
{
$user_agent = "Mozilla/4.0";
$stringHtmlContent = curl_string(BAIDU_URL,$user_agent,$proxy);
if(empty($stringHtmlContent))
{
if(file_exists($file_name))
{
unlink($file_name);
}
exit('代理连接失败');
}
}else{
//不使用代理访问
$stringHtmlContent = file_get_contents(BAIDU_URL);
}
preg_match("/<div class=\"dlText\">(.*?)<span class=\"dlSpywareFree\">/is",$stringHtmlContent,$arrayHtmlContent);
preg_match_all("/href=\"([^\"]+)/i", $arrayHtmlContent[1], $match);
$str_url2 = $match[1][0];
$stringHtmlContent2 = file_get_contents($str_url2);
preg_match("/<div class=\"watchListB\">(.*?)<div id=\"contentBody\">/is",$stringHtmlContent2,$arrayHtmlContent2);
preg_match("/<script type=\"text\/javascript\">(.*?)<\/script>/is",$arrayHtmlContent2[1],$exe);
preg_match_all("/src:'(.*?)'/i", $exe[1], $match2);
$exe_url = $match2[1];
$urlexe = $exe_url[0];
}else{
echo '参数错误!';
}
wfile($file_name, $urlexe);保存代码为cnet.php,上传文件到服务器,使用客户端访问该文件,将会得到最终下载连接.
skyaspnet
2011-01-23
打赏
举报
回复
[Quote=引用楼主 wpost 的回复:]
我的网站是做采集的。结果有一天IP被相关的采集源站点给屏蔽了 再换IP结果又屏蔽,我想通过PHP的方式虚拟一个IP地址然后再去采集相关站点。
我试过单纯的修改ip头 但是效果不行,因为这个无法欺骗相关站点的统计代码。
$headers['CLIENT-IP'] = $ip ;
$headers['X-FORWARDED-FOR'] = $ip ;
请前辈们帮我一下。
[/Quote]
只能考虑使用代理IP来完成这个功能了
在VMware中修改Linux
虚拟
机的动态
IP地址
为静态
IP地址
文章介绍了将Linux(CentOS)
虚拟
机的动态
IP地址
改为静态IP的步骤,包括使用VMware
虚拟
网络编辑器修改子网IP和网关IP,以及在
虚拟
机内修改配置文件来设置静态
IP地址
,以便于远程连接和避免频繁查询
IP地址
。
查看
虚拟
机的
ip地址
本文介绍了如何通过命令行查看
虚拟
机的
IP地址
。首先需要打开终端并使用ipaddr命令显示网络配置信息。如果ifconfig命令不可用,则需通过安装net-tools来解决。最后通过ifconfig -a列出所有网络接口及其
IP地址
。
虚拟
机
IP地址
消失以及静态
IP地址
转换
当
虚拟
机的
IP地址
消失,导致无法通过Xshell远程连接时,可以检查网络连接模式是否为NAT,确认VMware相关服务是否开启,并关闭networkmanager。之后重启
虚拟
机网络。若需设置静态IP,需编辑网络配置文件,然后重启网络以应用更改。静态IP适用于需要稳定远程连接的学习场景。
什么是
虚拟
IP地址
本文介绍AIX中
虚拟
IP地址
(VIPA)的概念及其实现方式。
虚拟
IP地址
能够提高系统的可用性,通过自动重新路由支持,即使网络接口发生故障,现有的连接也不会中断。此外,它还能够分散网络负载,避免单一网卡或子网成为瓶颈。
虚拟
机没有显示
ip地址
同学搭建完
虚拟
机后无
IP地址
,为帮助同学和回顾知识写此博客。介绍解决方法:一是在VMware里将目标
虚拟
机关机,把网络适配器切换为NAT模式;二是检查电脑中VMware相关服务是否开启;三是针对不同系统版本关闭networkmanager。
基础编程
21,889
社区成员
140,337
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章