PHP如何模拟登录移动游戏后台,急!一次只能给100分,不够再加!
PHP如何模拟登录移动游戏后台,后台地址:http://oss.cmgame.com/egbi/,最好能给出具体实现代码,谢谢!
这个页面需要输入账号密码后提交页面,使手机能获得验证码,手机验证码我可以通过程序读取,现在主要是想先通过模拟登录触发手机收到验证码。请问这一步需要怎么实现?
------解决方案--------------------
php curl
http://oss.cmgame.com/egbi/login.do
password intsig
userName synctest3
看了一下貌似不需要传什么额外的数据,跟一下cookie。
------解决方案--------------------
肯定是url的问题
你用抓包 跟踪一下 找出正确的 url
状态 200说明登录成功 肯定是登录成功 触发了某个url url不是那个 你找出正确的来
------解决方案--------------------
最好的方式是用curl模拟
但是模拟有时需要伪造cookie,有时候需要伪造SSH,视状况而定,這是我的curl方法
<br /> Public Function __construct($u) {<br /> IF($u=='') {Return '';}<br /> $this->url=&$u;<br /><br /> $r = parse_url($this->url);<br /> $Cai = curl_init();<br /> $Opt = Array(<br /> CURLOPT_URL => $this->url,<br /> CURLOPT_REFERER => $r['scheme'].'://'.$r['host'],<br /> CURLOPT_FAILONERROR => 1,<br /> CURLOPT_FOLLOWLOCATION => 1,<br /> CURLOPT_RETURNTRANSFER => 1,// 获取的信息以檔案流的形式返回,而不是直接输出。<br /> CURLOPT_TIMEOUT => 30,<br /><br /> CURLOPT_SSL_VERIFYHOST => 1,// 从证书中检查SSL加密算法是否存在<br /> CURLOPT_SSL_VERIFYPEER => 0,// 对认证证书来源的检查,0表示阻止对证书的合法性的检查<br /><br /> //偽造來路和IP<br /> //CURLOPT_REFERER => 'http://www.yzswyl.cn/', //来路<br /> //CURLOPT_HTTPHEADER => Array('X-FORWARDED-FOR:8.8.8.8', 'CLIENT-IP:8.8.8.8'),<br /> //CURLOPT_HEADER => 1,<br /><br /> //CURLOPT_PROXY => '222.73.173.50:8080',<br /> //CURLOPT_PROXYUSERPWD => 'username:password',<br /><br /> //CURLOPT_PORT => 80, //端口<br /> //CURLOPT_POST => 1, //发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。<br /> //CURLOPT_POSTFIELDS => $postfields,//要传送的所有数据,如果要传送一个檔案,[email protected]('g=yes&username=see7di&password=www.7di.net999&id=&code=')<br /> //CURLOPT_COOKIE => GetCook($url),<br /> //CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1',<br /> //CURLOPT_COOKIEJAR => Dirname(__FILE__).$cookie_jar,<br /> //CURLOPT_COOKIEFILE => Dirname(__FILE__).$cookie_jar,<br /> );<br /> curl_setopt_array($Cai,$Opt);<br /> $this->html = curl_exec($Cai);<br /><br /> IF(!$this->html){<br /> $this->html='<br>Error number: '.curl_errno($Cai).'<br>Error: '.curl_error($Cai);<br /> curl_close($Cai);<br /> Return $this->html;<br /> }<br /> curl_close($Cai);<br /> }