首頁 php教程 php手册 PHP模拟登陆MSN并获得用户信息

PHP模拟登陆MSN并获得用户信息

Jun 13, 2016 am 10:36 AM
msn php 程式碼 資訊 可以 模擬 使用者 登陸 獲取 獲得

一个可以获取msn上用户信息的代码

<font face="NSimsun"><?php </font></font>
/*
* bkJia中文网,整体提供,测试通过
* www.bkJia.com
*/<font face="NSimsun"><br> $msn = new myMSN(php100@2cto.com, "123");<br> // MSNv9<br> class myMSN {<br> private $server = "messenger.hotmail.com";<br> private $port = 1863;<br> private $nexus = "https://nexus.passport.com/rdr/pprdr.asp";<br> private $sshLogin = "login.live.com/login2.srf"; //loginnet.passport.com/login2.srf<br> private $getCode = null;<br> private $_ip = null;<br> private $_port = null;<br> private $connect = null;<br> private $trID = 1;<br> private $maxMessage = 4096;<br> private $userName = null;<br> private $passWord = null;<br> private $debug = true;<br> function myMSN($userName="", $passWord="") {<br> if (!empty($userName) &amp;&amp; !empty($passWord)) {<br> $this-&gt;userName = $userName;<br> //$this-&gt;passWord = urlencode($passWord);<br> $this-&gt;passWord = $passWord;<br> $this-&gt;startTalk();<br> }<br> }<br> function put($data) {<br> if ($this-&gt;isConnect()) {<br> fputs($this-&gt;connect, $data);<br> $this-&gt;trID ;<br> if ($this-&gt;debug)<br> print("<div style="color:green;font-size:13px;">&gt;&gt;&gt;{$data}</div>");<br> }<br> }<br> function get() {<br> if ($data = @fgets($this-&gt;connect, $this-&gt;maxMessage)) {<br> if ($this-&gt;debug)<br> print("<div style="color:red;font-size:13px;">");<br> return $data;<br> } else {<br> return false;<br> }<br> }<br> function isConnect() {<br> if (!is_null($this-&gt;connect))<br> return true;<br> else<br> return false;<br> }<br> function close() {<br> @fclose($this-&gt;connect);<br> }<br> function startTalk() {<br> if ($this-&gt;connect = fsockopen($this-&gt;server, $this-&gt;port, $errno, $errstr, 2))<br> $this-&gt;verTalk();<br> }<br> function verTalk() // MSN 协议协商 {<br> $this-&gt;put("VER {$this-&gt;trID} MSNP9 CVR0 rn");<br> $data = $this-&gt;get();<br> //echo $data;<br> if (false !== strripos($data, "VER"))<br> $this-&gt;envTalk();<br> }<br> function envTalk() // 环境协商 {<br> $this-&gt;put("CVR {$this-&gt;trID} 0x0409 winnt 5.0 i386 MSNMSGR 7.0.0816 MSMSGS {$this-&gt;userName} rn");<br> $data = $this-&gt;get();<br> //echo $data;<br> if (false !== strripos($data, "CVR"))<br> $this-&gt;reqTalk();<br> }<br> function reqTalk() // 请求确认 {<br> $this-&gt;put("USR {$this-&gt;trID} TWN I {$this-&gt;userName} rn");<br> $data = $this-&gt;get(); // XFR 3 NS 207.46.107.41:1863 0 65.54.239.210:1863 XFR 3 NS 207.46.107.25:1863 U D<br> //echo $data;<br> if (false !== strripos($data, "XFR")) {<br> list(, , , $serv) = explode(" ", $data); // 分析服务器<br> list($ip, $port) = explode(":", $serv); // 分析IP和端口<br> $this-&gt;_ip = $ip;<br> $this-&gt;_port = $port;<br> $this-&gt;reLink($ip, $port);<br> } else {<br> //echo $data; // USR 3 TWN S ct=1205292058,rver=5.0.3270.0,wp=FS_40SEC_0_COMPACT,lc=1033,id=507,ru=http://messenger.msn.com,tw=0,kpp=1,kv=4,ver=2.1.6000.1,rn=1lgjBfIL,tpf=b0735e3a873dfb5e75054465196398e0<br> list(, , , , $this-&gt;getCode) = explode(" ", trim($data));<br> //echo $data;<br> if (empty($this-&gt;sshLogin))<br> $this-&gt;reLoginTalk(); // 重新获取登陆服务器地址<br> else<br> $this-&gt;getLoginCode($this-&gt;sshLogin);<br> }<br> }<br> function reLink($server, $port) // 重置连接 {<br> $this-&gt;connect = null;<br> $this-&gt;server = $server;<br> $this-&gt;port = $port;<br> $this-&gt;trID = 1;<br> $this-&gt;startTalk();<br> }<br> function reLoginTalk() // 重新获取服务器地址 {<br> $ch = curl_init($this-&gt;nexus);<br> curl_setopt($ch, CURLOPT_HEADER, 1);<br> curl_setopt($ch, CURLOPT_NOBODY, 1);<br> curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);<br> curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);<br> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br> $header = curl_exec($ch);<br> //print_r($header);<br> curl_close($ch);<br> preg_match (/DALogin=(.*?),/, $header, $out); // 捕捉服务器登陆匹配<br> //print_r($out);<br> if (isset($out[1])) {<br> $this-&gt;getLoginCode($out[1]);<br> }<br> else {<br> //return false;<br> exit("无法捕捉到登陆服务器的URL");<br> }<br> }<br> function getLoginCode($slogin) // 获取登陆代码 {<br> //echo($this-&gt;getCode);<br> if (!is_null($this-&gt;getCode)) {<br> $ch = curl_init("https://" . $slogin);<br> $loginInfo = array(<br> "Authorization: Passport1.4 rgVerb=GET,OrgURL=http://messenger.msn.com,sign-in=" . $this-&gt;userName . ",pwd=" . $this-&gt;passWord . "," . $this-&gt;getCode,<br> "Host: login.passport.com"<br> );<br> curl_setopt($ch, CURLOPT_HTTPHEADER, $loginInfo);<br> //print_r($loginInfo);<br> //$this-&gt;getCode = null;<br> curl_setopt($ch, CURLOPT_HEADER, 1);<br> curl_setopt($ch, CURLOPT_NOBODY, 1);<br> curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);<br> curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);<br> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); </div></font>

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南

CakePHP 日期和時間 CakePHP 日期和時間 Sep 10, 2024 pm 05:27 PM

CakePHP 日期和時間

CakePHP 專案配置 CakePHP 專案配置 Sep 10, 2024 pm 05:25 PM

CakePHP 專案配置

CakePHP 檔案上傳 CakePHP 檔案上傳 Sep 10, 2024 pm 05:27 PM

CakePHP 檔案上傳

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

CakePHP 路由

討論 CakePHP 討論 CakePHP Sep 10, 2024 pm 05:28 PM

討論 CakePHP

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 快速指南

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發

See all articles