繁体   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