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

PHP 同 IP 網站查詢工具:反向 IP 查找實現

     編輯:PHP 相關知識

工具簡介

本程式可查詢同一 IP 地址下託管的所有域名,支援域名或 IP 直接查詢,採用 AJAX 異步顯示結果,介面簡潔實用。

核心功能模組

1. 訪客 IP 獲取

function visitorIP() {
  if ($_SERVER['HTTP_X_FORWARDED_FOR']) return $_SERVER['HTTP_X_FORWARDED_FOR'];
  elseif ($_SERVER['HTTP_CLIENT_IP']) return $_SERVER['HTTP_CLIENT_IP'];
  else return $_SERVER['REMOTE_ADDR'];
}

2. 域名清理與標準化

function cleanDomain($q, $w=0) {
  $q = htmlspecialchars(strtolower(trim($q)));
  // 移除協議前綴、可選移除 www.、去除尾部斜杠
  return $q;
}

3. HTTP 請求類(基於 fsockopen)

HTTPRequest 類封裝了完整的 HTTP/1.0 請求流程:

  • URL 解析(協議、主機、端口、URI)
  • Socket 連接(支援 HTTPS via ssl://)
  • 發送 GET 請求、接收響應
  • 自動處理 3xx 重定向
  • 分離 Header 與 Body

4. 反向 IP 查詢核心

function ReverseIP($q) {
  $htm = get_html('https://www.ip-adress.com/reverse_ip/'.$q);
  preg_match_all('/<a href="\/whois\/(.*)">Whois<\/a>/', $htm, $tt);
  return $tt[1];  // 返回域名列表
}

數據來源:ip-adress.com 的反向 IP 查詢頁面。

前端交互流程

  1. 用戶輸入域名或 IP,提交表單
  2. PHP 判斷輸入類型(域名解析 IP 或直接用 IP)
  3. 頁面載入後,JavaScript 發起 AJAX POST 請求到 ?action=do
  4. 伺服器調用 ReverseIP() 並返回 HTML 列表
  5. 前端將結果注入 #ipresult 容器

關鍵 JavaScript 代碼

function startRequest() {
  var domain = "";
  xmlHttp.open("POST", "./?action=do", true);
  xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  xmlHttp.send("q=" + domain);
}

部署注意事項

  • 需開啟 allow_url_fopen 或確保 fsockopen 可用
  • 依賴第三方網站 ip-adress.com,穩定性受其影響
  • 查詢頻率過高可能被目標站封禁,建議加入本地緩存
  • IPv6 環境下 gethostbyname() 可能不適用,需擴展

擴展建議

  • 接入專業 IP 數據庫(如 MaxMind、IP2Location)離線查詢
  • 增加 WHOIS 信息查詢、CDN 識別、歷史解析記錄
  • 提供 API 介面供其他系統調用
  • 前端改用 Fetch API、Promise 現代化寫法
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved