php重构HTTP包 获取result

目的是做一个分发的php脚本,根据客户端的不同需求,分发到不同的功能脚本。所以需要首先检验客户端发来的HTTP包中的请求类型,然后再进行分发。

分发脚本:

<?php
/*
* This file is to distribute the requests  to different servers , is divided by functions
* Para : Http-Request
* Data : 2014.5.5
*/
// include the mapping-array
include ‘./mapping/RequestType.php‘;
include ‘./mapping/MappingTable.php‘;
// Get functionName from clients
$functionName = $_POST[‘functionName‘];
// include the ReBuildHttpBag function
include ‘ReBuildHttpBag.php‘;
// Generate the para needed
$curPageName = "/WinPhone/Distribute.php";
$desPageName = $mapping[$functionName][‘pageName‘];
$serverPath = $mapping[$functionName][‘serverPath‘];
$serverPort = 80;
ReBuildHttpBag($_GET, $curPageName, $desPageName, $serverPath, $serverPort);
?>

ReBuildHttpBag定义:

<?php
function ReBuildHttpBag($argv=array(), $curPageName, $desPageName, $serverPath , $serverPort)
{
$flag = 0;
$post = ‘‘;
$errno = ‘‘;
$errstr = ‘‘;
//构造要post的字符串
foreach ($argv as $key=>$value) {
if ($flag!=0) {
$post .= "&";
$flag = 1;
}
$post.= $key."=";
$post.= urlencode($value);
$flag = 1;
}
$length = strlen($post);
//创建socket连接
$fp = fsockopen($serverPath,$serverPort,$errno,$errstr,10) or exit($errstr."--->".$errno);
//构造post请求的头
$header  = "POST ".$desPageName." HTTP/1.1\r\n";
$header .= "Host:".$serverPath."\r\n";
$header .= "Referer: ".$curPageName." \r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: ".$length."\r\n";
$header .= "Connection: Close\r\n\r\n";
//添加post的字符串
$header .= $post."\r\n";
//发送post的数据
fputs($fp,$header);
$inheader = 1;
while (!feof($fp)) {
$line = fgets($fp,1024); //去除请求包的头只显示页面的返回数据
if ($inheader && ($line == "\n" || $line == "\r\n")) {
$inheader = 0;
}
if ($inheader == 0) {
echo $line;
}
}
fclose($fp);
}
?>

php重构HTTP包 获取result,布布扣,bubuko.com

时间: 2024-10-07 22:12:44

php重构HTTP包 获取result的相关文章

wireshark抓包获取网站登录信息

最近有个需求,用python实现自动回复某个帖子,达到人工置顶的目的. 要自动回复,自然要先登录,所以需要获取到登录时http post提交的用户信息,抓包工具使用wireshark. 默认已经配置好wireshark,并且具备计算机网络的基础知识,如果不具备请自行百度. 用来登录的网页是天涯登录 首先,我们要知道本机的IP地址和点击登录页面的登录按钮后要向他发出http请求的机器的ip地址,前者用ipconfig或者mac下使用ifconfig知道,后者的话需要打开网页源码获取响应服务器的网址

抓包获取百度音乐API

这次抓包是获取手机APP中的数据包,共分为三个部分: 1.win7建立wifi 2.PC架设代理服务器 手机设置代理 3.抓包分析 一.win7建立wifi 在win7下搭建wifi非常简单,网上的教程也非常多,下面简要介绍一下方法: 首先要保证笔记本开启了无线网卡. 1)以管理员身份打开cmd 2)输入命令:netsh wlan set hostednetwork mode=allow ssid=账号 key=密码,其中"账号"和"密码"是你想设置的wifi的账号

Java或者JAR包获取读取资源文件的路径的问题总结

这里分为具体两种: 第一种:资源文件为一般后缀文件 第二种:资源文件为图片文件 [NO1]第一种 使用这行代码可以获取class类的根目录的路径 String path =Thread.currentThread().getContextClassLoader().getResource("").getPath(); 例子:我用的开发软件MyEclipse 6.5 假设项目文件夹如下: files---bin--core(生成class包) |               |     

2019年最新微信小程序源码解包获取源码(分包教程)

微信小程序解包,源码是 https://github.com/qwerty472123/wxappUnpacker 大神写的.通过node wuWxapkg.js D:\wamp\www\Private\微信小程序代码\wxappUnpacker-master\wxappUnpacker-master\pkg\pkg\xxxx\_788457675_132.wxapkg 没分包一般都能获取到一般的.现在微信 7.X有了分包了后,解出来的就报错. 分包教程 node wuWxapkg.js -s=

nodejs查询数据库后,获取result结果集并赋值返回

nodejs获取了查询结果,但不能返回出去, 情形如下: var query = function (path,id,param,sqlWhere,res){ var aa = 111;var sql = "select * from user"; var mysql = dbHelper.getMysql(); mysql.query({ sql: sql }, function (err, rows) { res.end(JSON.stringify(rows)); aa = ro

通过抓包获取跳转url并通过dnspython模块查询监控服务是否正常

最近看到网上有一个例子,是用于通过DNS轮询来查看同个DNS下,多个ip对应服务页面监控的脚本,自己在试验过程中,发现访问有些网站会出现conn.getresponse()为空的情况,通过conn.getresponse().status.conn.getresponse().reason得出是303 SEE OTHER,这种情况不能做出服务是否正常的判断,所以通过wireshark抓包来查看返回200 OK上面一个包,然后通过分析包,加到headers进行访问.具体过程如下: 1.打开wire

猫眼电影App抓包获取评论数据接口

?之前在CSDN程序人生公众号上看到了这篇文章<邪不压正>评分持续走低,上万条网友评论揭秘,是救救姜文还是救救观众?,文中提到了通过抓包猫眼App发现了评论的数据接口:http://m.maoyan.com/mmdb/comments/movie/248566.json?_v_=yes&offset=1,其中248566属于电影的专属id,offset代表页数,但并未提及如何在猫眼App抓包.经过笔者的摸索,在尝试Charles等各种抓包工具后,踩了无数的坑之后,最终使用Fiddler

通过抓包获取服务器的IP地址

问题描述:一台服务器安装了winserver2003系统,经过漫长的加电启动,能进入到win2003的登录界面,提示ctrl+alt+del登录界面,但是发现键盘失灵了,无法键入ctrl+alt+del,更换键盘重启服务器之后也不管用!想通过网口远程登录,但是不记得网口的IP地址了! 问题分析:键盘失灵应该是主板上的USB模块坏了,这个短时间无法修复远程登录不知道IP地址,这个有就点可惜了,想想有没有解决办法呢? 解决问题:使用网线一头接Gb网口,另一头接笔记本网卡,如果使用IP扫描软件扫描IP

fiddlercore 抓包获取cookie的方法

public partial class form1 : Form { public form1() { string cookies = ""; InitializeComponent(); #region AttachEventListeners Fiddler.FiddlerApplication.OnNotification += delegate (object sender, NotificationEventArgs oNEA) { Console.WriteLine(&