找回密码
 注册

QQ登录

只需一步,快速开始

【阿里云】2核2G云新老同享 99元/年,续费同价华为云精选云产品特惠做网站就用糖果主机Jtti,新加坡服务器,美国服务器,香港服务器
楼主: 姜运涛

php的小偷专业类ugs.php

[复制链接]
 楼主| 发表于 2005 年 6 月 5 日 12:40:28 | 显示全部楼层

php的小偷专业类ugs.php

原文地址:http://www.52linux.com/blog/index.php?play=show&id=2
代码地址:http://www.52linux.com/ugs/ugs.phps
PHP代码:


<?
// 兼容 php4 php5
// 程序作者 张建 52linux.com(我爱Linux)
// 联系方法 733905@qq.com QQ 733905
// 简单调用方法
/*
<?
include ("ugs.php"); // 你可以下载本ugs.phps 然后重命名为ugs.php
$ugs = new ugs();
$url = "http://domainname.com/path_to_your_target?param";
$ugs->seturl($url);
$ugs->gather();
//............这里可以调用本类里的其它方法,对$ugs->value_ 做调整,
以满足您的要求
$content=$ugs->getcontent();
print($content);
?>
*/
class ugs
{
  var $value_ ; //'目标内容
  var $src_   ; //'目标URL地址

  function seturl($url)
  {
   $this->src_=$url;
  }
  function getcontent()
  {
   return $this->value_;
  }
  function getfile($url)
  // 获取目标
  {
   $url_parsed = parse_url($url);
   $host = $url_parsed["host"];
   $port = $url_parsed["port"];
   if ($port==0) $port = 80;
   $path = $url_parsed["path"];
   if (empty($path))
   $path="/";
   if ($url_parsed["query"] != "")
     $path .= "?".$url_parsed["query"];
   $out = "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n";
   $fp = fsockopen($host, $port, $errno, $errstr, 30);
   fwrite($fp, $out);
   $body = false;
   while (!feof($fp))
   {
     $s = fgets($fp, 1024);
     if ( $body ) $in .= $s;
     if ( $s == "\r\n" )
         $body = true;
   }
   fclose($fp);
   return $in;
  }

  function gather_array($url)
  {
   return file($url);
  }
  function   gather()
  // 开始收集
  {
   $http=$this->getfile($this->src_);
   return $this->value_=$http;
  }

  function gather_local($toline=true)
  // 处理本地文件
  {

   if($toline)
   {
       $http=file($this->src_);
       return $this->value_=$this->BytesToBstr($http);
   }
   else
   {
       $http=file($this->src_);
       return $this->value_=$http;
   }
         

   
  }

  function noReturn()
  // 删除回车换行
  {
   $this->value_=str_replace("\n","",$this->value_);
   $this->value_=str_replace("\r","",$this->value_);
  }


  function change($oldStr,$str)
  //'对收集到的内容中的个别字符串用新值更换/方法
  //'参数分别是旧字符串,新字符串
  {
   $this->value_=str_replace($oldStr,$str,$this->value_ );
  }



  function cut($start,$end,$no=Ƈ',$comprise='')
  //'按指定首尾字符串对收集的内容进行裁减(不包括首尾字符串)方法
  // $no 必须是 1,2 3 ... 不允许是0
  //$comprise 可以选择 start 或者 end 或者 all 或者 什么都不填
  {
   $string=explode($start,$this->value_);
   //print_r($string);
   $string=explode($end,$string[$no]);
   //print_r($string);
   switch ($comprise){
         case 'start':
               $string=$start.$string[0];
         break;
         case 'end':
               $string=$string[0].$end;
         break;
         case 'all':
               $string=$start.$string[0].$end;
         break;
         default:
               $string=$string[0];
   }
   return $this->value_=$string;
   }


  function filt($head,$bot,$str)
  //'按指定首尾字符串对收集的内容用新值进行替换(不包括首尾字符串)方法
  // '参数分别是首字符串,尾字符串,新值,新值位空则为过滤
  {
   $tmp_v=$this->value_;
   $tmp=$this->cut($head,$bot);
   return $this->value_=str_replace($tmp,$str,$tmp_v);
  }

  function filtX($head,$bot,$str)
  // '参数分别是首字符串,尾字符串,新值,新值位空则为过滤
  {
   $tmp_v=$this->value_;
   $tmp=$this->cutX($head,$bot);
   return $this->value_=str_replace($tmp,$str,$tmp_v);
  }



  function local()
  {
   //'将收集的内容中的绝对URL地址改为本地相对地址
   // 还没实现
  }



  function replaceByReg($patrn,$str)
  //'对收集的内容中的符合正则表达式的字符串用新值进行替换/方法
  //'参数是你自定义的正则表达式,新值
  {
   return $this->value_=join("",preg_replace($patrn,$str,$this->value_));
  }



  function debug()
  //调试显示
  {
   $tempstr="<SCRIPT>function runEx(){var winEx2 = window.open(\"\", \"winEx2\", \"width=500,height=300,status=yes,menubar=no,scrollbars=yes,resizable=yes\"); winEx2.document.open(\"text/html\", \"replace\"); winEx2.document.write(unescape(event.srcElement.parentElement.children[0].value)); winEx2.document.close(); }function saveFile(){var win=window.open('','','top=10000,left=10000');win.document.write(document.all.asdf.innerText);win.document.execCommand('SaveAs','','javascript.htm');win.close();}</SCRIPT><center><TEXTAREA id=asdf name=textfield rows=32 wrap=VIRTUAL cols=\"120\">".$this->value_."</TEXTAREA><BR><BR><INPUT name=Button onclick=runEx() type=button value=\"查看效果\"> <INPUT name=Button onclick=asdf.select() type=button value=\"全选\"> <INPUT name=Button onclick=\"asdf.value=''\" type=button value=\"清空\"> <INPUT onclick=saveFile(); type=button value=\"保存代码\"></center>";
   echo $tempstr;
  }


}
?>
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|金光论坛

GMT+8, 2024 年 10 月 15 日 18:28 , Processed in 0.015963 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表