首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 實作 MSN Messenger 協議獲取用戶資訊

     編輯:PHP 綜合知識

PHP Socket 連接 MSNP9 協議完整實作

本文展示一個使用 PHP Socket 程式設計,實作 MSN Messenger 9 (MSNP9) 協議的類別,可自動完成認證流程並獲取用戶資訊。注意:MSN 服務已於 2014 年停止,此代碼僅供協議學習與 Socket 程式設計參考。

核心類別架構

class myMSN {
    // 伺服器設定
    private $server = "messenger.hotmail.com";
    private $port   = 1863;
    private $nexus  = "https://nexus.passport.com/rdr/pprdr.asp";
    private $sshLogin = "login.live.com/login2.srf";

    // 連線狀態
    private $connect = null;
    private $trID    = 1;        // 交易 ID
    private $maxMessage = 4096;  // 緩衝區大小

    // 使用者憑證
    private $userName = null;
    private $passWord = null;
    private $debug    = true;    // 除錯模式

    // 建構子:自動啟動協議流程
    function __construct($userName="", $passWord="") {
        if (!empty($userName) && !empty($passWord)) {
            $this->userName = $userName;
            $this->passWord = $passWord;
            $this->startTalk();
        }
    }
    // ... 後續方法詳見下方流程圖
}

MSNP9 協議流程圖解

  1. 建立連線:fsockopen() 連接 messenger.hotmail.com:1863
  2. 版本協商 (VER):發送 VER trID MSNP9 CVR0
  3. 環境協商 (CVR):發送客戶端資訊 CVR trID 0x0409 winnt 5.0 i386 MSNMSGR 7.0.0816 MSMSGS user
  4. 認證請求 (USR TWN I):發送 USR trID TWN I user@domain
  5. 伺服器轉向 (XFR):收到 XFR trID NS ip:port → 解析 IP/Port → 重新連線
  6. 取得認證碼:透過 Nexus 伺服器 (HTTPS) 獲取登入票據
  7. 最終登入 (USR TWN S):發送 USR trID TWN S ticket 完成認證

關鍵方法說明

方法 功能
put() 發送指令到伺服器,自動遞增 trID,除錯模式下輸出綠色日誌
get() 接收伺服器回應,除錯模式下輸出紅色日誌
reLink() 處理 XFR 轉向:關閉舊連線、更新伺服器資訊、重新啟動流程
reLoginTalk() 使用 cURL 向 Nexus 伺服器請求登入 URL (DALogin)
getLoginCode() 攜帶帳號密碼與認證碼向登入伺服器請求,解析回應中的 from-PP 票據
loginAction() 發送最終 SSO 登入指令

使用範例

<?php
// 實例化即自動執行完整認證流程
$msn = new myMSN("your_account@hotmail.com", "your_password");

// 此處可擴充:發送訊息、獲取好友列表、狀態更新等
// 需實作 SYN、CHG、ADD 等後續指令
?>

⚠️ 重要說明

  • 服務已停止:Microsoft 於 2014 年 10 月關閉 MSN Messenger 服務,遷移至 Skype
  • 協議已過時:MSNP9 為 2003 年協議,現代即時通訊均採用 XMPP、WebSocket 或專有協議
  • 學習價值:本代碼展示 PHP Socket 程式設計、狀態機實作、HTTPS/cURL 整合、協議解析 等核心技術
  • 安全警示:明文傳輸密碼、MD5 弱雜湊、無 TLS 加密,絕不可用於生產環境

現代替代方案

  • Microsoft Graph API:官方支援、OAuth 2.0、RESTful、完整文檔
  • Skype Web SDK:即時通訊整合
  • Bot Framework:聊天機器人開發
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved