联系电话:0755-27515592
最新动态:

PHP教程

你的位置: 首页>>智慧亿恩>>PHP教程

php中fsockopen模仿post与get详解

点击数:12802015-07-19 17:49:14 来源: 外贸网站建设,深圳外贸网站建设,深圳网站建设,外贸商城网站制作-亿恩科技

新闻摘要:在php中fsockopen函数可以模仿用户去访问一些网站并且还可以带一些常用的信息,如果浏览器,IP,post,get 等等数据,下面我分别一来给大家介绍介绍. 如果你要使用fsockopen函数我们必须在php.

在php中fsockopen函数可以模仿用户去访问一些网站并且还可以带一些常用的信息,如果浏览器,IP,post,get 等等数据,下面我分别一来给大家介绍介绍.

如果你要使用fsockopen函数我们必须在php.ini中把allow_url_fopen = On 设置为开启状态.

例,fsockopen() Example,代码如下:

  1. <?php 
  2. $fp = fsockopen("www.vcphp.com", 80, $errno$errstr, 30); 
  3. if (!$fp) { 
  4.     echo "$errstr ($errno)<br />n"
  5. else { 
  6.     $out = "GET / HTTP/1.1rn"
  7.     $out .= "Host: www.example.comrn"
  8.     $out .= "Connection: Closernrn"
  9.     fwrite($fp$out); 
  10.     while (!feof($fp)) { 
  11.         echo fgets($fp, 128); 
  12.     } 
  13.     fclose($fp); 
  14. ?> 

伪造post,POST HTTP请求(URL)并获取返回值,代码如下:

  1. <?php  
  2.  
  3.   $srv_ip = '192.168.1.5';//你的目标服务地址.  
  4.  
  5.   $srv_port = 80;//端口  
  6.  
  7.   $url = 'http://localhost/fsock.php'; //接收你post的URL具体地址   
  8.  
  9.   $fp = '';  
  10.  
  11.   $errno = 0;//错误处理  
  12.  
  13.   $errstr = '';//错误处理  
  14.  
  15.   $timeout = 10;//多久没有连上就中断  
  16.  
  17.   $post_str = "username=demo&password=hahaha";//要提交的内容.  
  18.  
  19.   //打开网络的 Socket 链接。  
  20.  
  21.   $fp = fsockopen($srv_ip,$srv_port,$errno,$errstr,$timeout);  
  22.  
  23.   if (!$fp){  
  24.  
  25.    echo('fp fail');  
  26.  
  27.   }  
  28.  
  29.   $content_length = strlen($post_str);  
  30.  
  31.   $post_header = "POST $url HTTP/1.1rn";  
  32.  
  33.   $post_header .= "Content-Type: application/x-www-form-urlencodedrn";  
  34.  
  35.   $post_header .= "User-Agent: MSIErn";  
  36.  
  37.   $post_header .= "Host: ".$srv_ip."rn";  
  38.  
  39.   $post_header .= "Content-Length: ".$content_length."rn";  
  40.  
  41.   $post_header .= "Connection: closernrn";  
  42.  
  43.   $post_header .= $post_str."rnrn";  
  44.  
  45.   fwrite($fp,$post_header); 
  46.  
  47.   $inheader = 1;  
  48.  
  49.   while(!feof($fp)){//测试文件指针是否到了文件结束的位置  
  50.  
  51.    $line = fgets($fp,1024);  
  52.  
  53.    //去掉请求包的头信息  
  54.  
  55.    if ($inheader && ($line == "n" || $line == "rn")) {  
  56.  
  57.          $inheader = 0;  
  58.  
  59.     }  
  60.  
  61.     if ($inheader == 0) {  
  62.  
  63.       echo $line;  
  64.  
  65.     }  
  66.  
  67.   }  
  68.  
  69.   fclose($fp);  
  70.  
  71.   unset ($line);  
  72.  
  73. ?>  

简要说明:代码第二行是你的IP地址或域名,第四行是你要POST的页面的具体地址,本例用的是fsock.php,fsock.php内容如下:

  1. <?php  
  2.  
  3.     echo "username:".$_POST['username']."<br/>";  
  4.  
  5.     echo "password:".$_POST['password'];  
  6.  
  7. ?> 
  8.  
  9. //结果为: 
  10.  
  11. username:demo 
  12.  
  13. password:hahaha 

伪造get,同时伪造post,get方法,代码如下:

  1. <?php 
  2. //fsocket模拟post提交
【责任编辑:(Top) 返回页面顶端
贴心
全国7×24小时客服热线
安全
病毒杀除率高于99%
稳定
网站可用性高于99.9%
实力
服务68家上市企业及集团公司
亿恩科技手机站
关注亿恩科技微信

亿恩科技—企业信息化一站式服务专家


Copyright © 2008- 深圳市亿恩科技有限公司版权所有 粤ICP备15056041号

联系我们 | 常见问题 | 在线留言 | 支付方式 | 软件开发 | 我的观点 | 资质荣誉 | 服务流程