您的位置:首页 > 运维架构 > 网站架构

Php正则表达式的应用———提取某网站中最新发表的代理ip地址

2009-06-24 23:14 489 查看
         Php正则表达式的应用———提取某网站中最新发表的代理ip地址
正则表达式的功能是非常强大的,主要三方面应用。1.判断指定的字符串是否具有指定的格式 
2.查找具有指定格式的字符串
3. 将具有指定格式的字符串替换为另一种格式

本文主要利用php正则表达式来提取网站发表的代理ip地址,并转换为指定格式,保存为txt文档。然后添加到代理猎手软件中,验证成功,我们就能使用代理ip了,O(∩_∩)O~。再不怕网友知道你的真实ip地址了。增加了安全性,还能恶搞。(注:请勿触犯法律)
本程序选择发表代理ip地址的网址为:http://www.sooip.cn。感谢他们无私的奉献,值得我们表扬,值得我们浏览。http://www.sooip.cn,在发一遍。

Php代码如下:

<?php
   /**
   * @ Author:朱南天
   *Date: 2009-06-24
  **/
   $filename="http://www.sooip.cn/Article_search.asp";
   $fileinfo=file_get_contents($filename);
   $fileinfo=strtolower($fileinfo);
   $fileinfo=strstr($fileinfo,"1.<a");
   $infoarr=explode("5.<a",$fileinfo);
   $fileinfo=$infoarr[0];
    if(!preg_match_all('/href="(.*?)"/',$fileinfo,$id))
 {
      preg_match_all('/href=/'(.*?)/'/',$fileinfo,$id);  //获取文章的地址
 }
 $idend=str_replace("http://www.sooip.cn/","",$id[1]); 
/*将获得地址统一,例如获得有的是http://www.sooip.cn/Article_Show.asp?ArticleID=3478 ,有的是Article_Show.asp?ArticleID=3478   */
foreach($idend as $i)
  {
 $fileinfonew=file_get_contents('http://www.sooip.cn/'.$i);
 $fileinfonew=str_replace(' ','',$fileinfonew);
 preg_match('/title>(.*)</',$fileinfonew,$filename); 
     //提取网页的标题,作为保存文件的文件名
preg_match_all('//d{1,3}/./d{1,3}/./d{1,3}/./d{1,3}/s{1,}/d+/',$fileinfonew,$ip);
/* 关键所在,匹配ip地址及端口 */
$ipnew=preg_replace('//r/n/','',$ip[0]); 
$ipnew=preg_replace('//s{1,}/',':',$ipnew);
//转换为指定格式,形如 xxx.xxx.xxx.xxx:端口  
$strinfo=join("/r/n",$ipnew); //添加txt中换行符
$txtfilename=str_replace(array('/','//','|',':','?','<','>','"','*'),"  ",$filename[1]);
/* 
排除 文件名中不容许出现的字符,如 /  /  :  *   ?  ,   <   >  |    
*/  
file_put_contents("$txtfilename.txt",$strinfo);  //写入文件
   }
  
?>

注:1.本程序有些依赖网页源代码的格式与内容,若网页有所改变,该程序可能有些问题。
   2.本程序中有些是不是必需的,如提取网页标题作为保存文件文件名。读者可另设简单的名字,简化程序。
    3.读者可任意复制,转载时要注明转载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息