簡體   English   中英

Delphi XE2 - 如何獲取指定網站的IP?

[英]Delphi XE2 - How to get IP of a specified website?

我有一個程序,在其中檢查Web服務器上的php文件,以查看用戶是否已經過驗證。 php文件在數據庫中運行,檢查和回聲“驗證”是否存在。

現在,人們現在可以通過安裝Xampp,將我的服務器路由到其主機文件中的127.0.0.1,然后設置回聲驗證的腳本,輕松繞過驗證系統。

我希望能夠檢查我的域的IP地址,以檢查它是否路由到127.0.0.1。

我如何通過delphi解析域的IP地址?

我曾經使用類似的黑客來解決ICQ服務器端驗證問題。 當我想測試我未被邀請的alpha / beta版本時非常方便:-)

與Delphi一起提供的Indy具有TIdStack.ResolveHost()函數和單獨的TIdDNSResolver組件,它們都可用於獲取域的IP。 它還具有TIdStack.LocalAddresses屬性,可以檢索本地IPv4地址。 或者,您可以直接使用套接字API gethostbyname()getaddrinfo()函數,以及特定於平台的API來枚舉本地IP,例如Windows上的GetAdaptersAddresses()函數。

但是,不要讓PHP腳本簡單地將純文本回送到您的應用程序,更安全的選項不要求您驗證IP是讓您的應用程序創建動態生成的nonce值並將其發送到PHP腳本,然后讓腳本處理它,使用只有你知道的算法對其進行哈希處理,然后將其發送回應用程序。 該應用程序可以執行相同的算法並比較結果。 除非有人花時間對您的應用進行逆向工程,否則他們將無法使用自定義Xampp腳本重現您的算法或偽造其結果。

更好的是,使用SSL / TLS加密與域服務器的連接,並為您的域服務器提供一個SSL證書,您的應用可以在用PHP腳本交換任何數據之前驗證該證書。 如果您這么做,您可以繼續使用純文本回顯,因為SSL / TLS將驗證您是否已連接到您的域。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM