发布时间:2019-09-26 03:09编辑:关于计算机浏览(136)
通过HTTP左券客商端类HttpClient来介绍PHP POST HTTP央浼的措施,这几个类你可以到法定
若是你要选拔fsockopen函数我们必须在php.ini中把allow_url_fopen = On 设置为打开状态。
下载好后透过多少个公文来测量试验下,新建贰个PHP文件加入如下内容:
例
代码如下
fsockopen() Example
<?php
include_once('HttpClient.class.php');
//目的主机的地方,笔者这边填上测验的地方
$Client = new HttpClient("192.168.1.5");
$url = "
//POST的参数
$params =
array('username'=>"guowenlong",'password'=>"hahahaha");
$pageContents = HttpClient::quickPost($url, $params);
echo $pageContents;
?>
代码如下
地点代码第5行中的央求页面地址是receive.php所以再建三个receive.php文件,写入如下内容:
<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />n";
} else {
$out = "GET / HTTP/1.1rn";
$out .= "Host: www.example.comrn";
$out .= "Connection: Closernrn";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>
代码如下
伪造post
<?php
echo "username:".$_POST['username']."<br/>";
echo "password:".$_POST['password']."<br/>";
?>
POST HTTP央求(U奔驰G级L)并收获重回值
代码如下
推行你建的第4个PHP文件将见到如下内容: username:guowenlong password:hahahaha
<?php
$srv_ip = '192.168.1.5';//你的对象服务地址.
$srv_port = 80;//端口
$url = ''; //接收你post的U大切诺基L具体地址
$fp = '';
$errno = 0;//错误管理
$errstr = '';//错误管理
$timeout = 10;//多长期没有连上就半途而废
$post_str = "username=demo&password=hahaha";//要交给的内容.
//打开互联网的 Socket 链接。
$fp = fsockopen($srv_ip,$srv_port,$errno,$errstr,$timeout);
if (!$fp){
echo('fp fail');
}
$content_length = strlen($post_str);
$post_header = "POST $url HTTP/1.1rn";
$post_header .= "Content-Type: application/x-www-form-urlencodedrn";
$post_header .= "User-Agent: MSIErn";
$post_header .= "Host: ".$srv_ip."rn";
$post_header .= "Content-Length: ".$content_length."rn";
$post_header .= "Connection: closernrn";
$post_header .= $post_str."rnrn";
fwrite($fp,$post_header);
$inheader = 1;
while(!feof($fp)){//测量试验文件指针是还是不是到了文本截至的职位
$line = fgets($fp,1024);
//去掉央浼包的头音讯
if ($inheader && ($line == "n" || $line == "rn")) {
$inheader = 0;
}
if ($inheader == 0) {
echo $line;
}
}
fclose($fp);
unset ($line);
?>
轻便易行表达:代码第二行是你的IP地址或域名,第四行是您要POST的页面包车型大巴具体地址,本例用的是fsock.php,fsock.php内容如下:
代码如下
<?php
echo "username:".$_POST['username']."<br/>";
echo "password:".$_POST['password'];
?>
结果为:
username:demo
password:hahaha
伪造get
再正是伪造post,get方法。
代码如下
<?php
//fsocket模拟post提交
$purl = "";
print_r(parse_url($url));
sock_post($purl,"uu=55555555555555555");
//fsocket模拟get提交
function sock_get($url, $query)
{
$info = parse_url($url);
$fp = fsockopen($info["host"], 80, $errno, $errstr, 3);
$head = "GET ".$info['path']."?".$info["query"]." HTTP/1.0rn";
$head .= "Host: ".$info['host']."rn";
$head .= "rn";
$write = fputs($fp, $head);
while (!feof($fp))
{
$line = fread($fp,4096);
echo $line;
}
}
sock_post($purl,"uu=rrrrrrrrrrrrrrrr");
function sock_post($url, $query)
{
$info = parse_url($url);
$fp = fsockopen($info["host"], 80, $errno, $errstr, 3);
$head = "POST ".$info['path']."?".$info["query"]." HTTP/1.0rn";
$head .= "Host: ".$info['host']."rn";
$head .= "Referer: ";
$head .= "Content-type: application/x-www-form-urlencodedrn";
$head .= "Content-Length: ".strlen(trim($query))."rn";
$head .= "rn";
$head .= trim($query);
$write = fputs($fp, $head);
while (!feof($fp))
{
$line = fread($fp,4096);
echo $line;
}
}
?>
本文由澳门402永利com发布于关于计算机,转载请注明出处:HTTP央浼并赢得重临值
关键词: