php中fsockopen模仿post与get详解

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

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

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

伪造post提交

POST HTTP请求(URL)并获取返回值

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

fsockopen.php

<?php 

  $srv_ip = 'www.jef.com';//你的目标服务地址. 

  $srv_port = 80;//端口 

  $url = 'http://www.jef.com/10moth/case10_31.php'; //接收你post的URL具体地址  

  $fp = ''; 

  $errno = 0;//错误处理 

  $errstr = '';//错误处理 

  $timeout = 30;//多久没有连上就中断 

  $post_str = "user=demo&password=hahaha";//要提交的内容. 

  //打开网络的 Socket 链接。 

  $fp = fsockopen($srv_ip,$srv_port,$errno,$errstr,$timeout); 

  if (!$fp){ 

   echo('fp fail'); 

  } 
  //拼接http协议头
  $content_length = strlen($post_str); 

  $post_header = "POST $url HTTP/1.1\r\n"; 

  $post_header .= "Content-Type: application/x-www-form-urlencoded\r\n"; 

  $post_header .= "User-Agent: MSIE\r\n"; 

  $post_header .= "Host: ".$srv_ip."\r\n"; 

  $post_header .= "Content-Length: ".$content_length."\r\n"; 

  $post_header .= "Connection: close\r\n\r\n"; 

  $post_header .= $post_str."\r\n\r\n"; 

  fwrite($fp,$post_header); 

 

  $inheader = 1; 

  while(!feof($fp)){//测试文件指针是否到了文件结束的位置 

   $line = fgets($fp,1024); 
   echo $line;
   //去掉请求包的头信息 

   /*if ($inheader && ($line == "n" || $line == "rn")) { 

         $inheader = 0; 

    } 

    if ($inheader == 0) { 

      echo $line; 

    } */

  } 

  fclose($fp); 

  // unset ($line); 

?> 
接收POST请求

post.php

<?php 

    echo "username:".$_POST['username']."<br/>"; 

    echo "password:".$_POST['password']; 

?> 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值