現在位置: 首頁 > Nginx, php, 其他 > 正文

驗證對外 IP 不求人,架設自己的 myip 網站

一個系統工程師常常會需要用到 myip 來驗證自己的對外IP,這個動作平常不用,但有需要的時候就會變得很頻繁使用

 

但是常常遇到常用的 myip 網站無法使用或者是在沒有外網的環境下使用,這時候不如就自己架一個 myip 網站

 

myip 實際上的運用很廣,又非常簡單,只要使用 php + curl 就可以達到 Server / Client 的功能!

 

*** 2016/07/23 更新:由於本篇採用的是 client header 去判斷使用者的 IP,若是要作為記錄操作資訊的話切勿使用這種方式,因為 client header 是可以輕易遭到竄改,正確的作法;如何正確的取得使用者 IP?,提到將可能的 header 存入資料庫並且先行過濾篩選或者使用 Prepared Statement 儲存。

 

任何從客戶端取得的資料都是不可信任的!

 

參考的 HTTP Header(依照可能存放真實 IP 的順序)

  • HTTP_CLIENT_IP
  • HTTP_X_FORWARDED_FOR
  • HTTP_X_FORWARDED
  • HTTP_X_CLUSTER_CLIENT_IP
  • HTTP_FORWARDED_FOR
  • HTTP_FORWARDED
  • REMOTE_ADDR (真實 IP 或是 Proxy IP)
  • HTTP_VIA (參考經過的 Proxy)

 

 

MyIP Server 架設

在這邊使用 nginx 當作 WebServer 當範例

Step.1 安裝套件,設定 nginx 允許 php 執行。

 

Step.2 設定 php-fpm

 

Step.3 建立 index.php 抓取 client IP

主要是抓 client header 把任何可能為 client IP 都放進來檢查。

 

啟動服務並測試

搞定!

 

 

就如同上面 client 端只要 curl 指定網址就可以抓到 IP,你也可以寫成 script

 

執行效果

 

 

文章連結: https://shazi.info/%e9%a9%97%e8%ad%89%e5%b0%8d%e5%a4%96-ip-%e4%b8%8d%e6%b1%82%e4%ba%ba%ef%bc%8c%e6%9e%b6%e8%a8%ad%e8%87%aa%e5%b7%b1%e7%9a%84-myip-%e7%b6%b2%e7%ab%99/ | Mr. 沙先生

該文章由 shazi7804 於2015年09月30日發表在 Nginx, php, 其他 分類下, 你可以發表回文,並在保留原文地址及作者的情况下引用到你的網站或部落格。
原文轉載請註明: 驗證對外 IP 不求人,架設自己的 myip 網站 | Mr. 沙先生
標籤: ,

驗證對外 IP 不求人,架設自己的 myip 網站:給Mr.沙先生一點建議

發表回文