社区
基础编程
帖子详情
如何虚拟IP地址?
notepad
2011-01-23 09:35:43
我的网站是做采集的。结果有一天IP被相关的采集源站点给屏蔽了 再换IP结果又屏蔽,我想通过PHP的方式虚拟一个IP地址然后再去采集相关站点。
我试过单纯的修改ip头 但是效果不行,因为这个无法欺骗相关站点的统计代码。
$headers['CLIENT-IP'] = $ip ;
$headers['X-FORWARDED-FOR'] = $ip ;
请前辈们帮我一下。
...全文
986
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来完成这个功能了
计算机 修改
虚拟
ip,怎么样在电脑中设置
虚拟
IP地址
?
满意答案wtc69812020.03.01采纳率:56%等级:9已帮助:114人更改
IP地址
广域IP:1、如果是PPOE上网只需断开连接再重新连上就好了,服务器会从
IP地址
池中随机分配一个
IP地址
给你。2、固定IP上网那你要找运营商更改了,...
如何获取速度快的免费
虚拟
ip地址
?
对于需要提高网络访问速度和稳定性的用户来说,使用免费
虚拟
ip地址
是一种非常实用的方法。那么,如何获取速度快的免费
虚拟
ip地址
呢? 需要选择可信赖的免费
虚拟
ip地址
服务商。一些知名的大型代理服务提供商会提供...
计算机 修改
虚拟
ip,电脑
虚拟
ip地址
怎么弄?
原标题:电脑
虚拟
ip地址
怎么弄?在需要建立局域网和连接多台计算机时。我将重新设置电脑的
IP地址
,这样电脑就可以连上网了。因此,如何设置电脑的
IP地址
呢?以下是根据电脑原来的
IP地址
设置
IP地址
的共享方法。设置...
【网络学习笔记】- 什么是
IP地址
?
一、什么是
IP地址
IP地址
(Internet Protocol Address)是指互联网协议地址,又称网际协议地址。
IP地址
是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理...
怎么查看
虚拟
机上的
ip地址
?
怎么查看
虚拟
机上的
ip地址
?
基础编程
21,887
社区成员
140,363
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章