Delphi XE2 - 如何获取指定网站的IP?

Jos*_*ine 5 delphi ip resolveurl

我有一个程序,在其中检查Web服务器上的php文件,以查看用户是否已经过验证.php文件在数据库中运行,检查和回声"验证"是否存在.

现在,人们现在可以通过安装Xampp,将我的服务器路由到其主机文件中的127.0.0.1,然后设置回声验证的脚本,轻松绕过验证系统.

我希望能够检查我的域的IP地址,以检查它是否路由到127.0.0.1.

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

Rem*_*eau 14

我曾经使用类似的黑客来解决ICQ服务器端验证问题.当我想测试我未被邀请的alpha/beta版本时非常方便:-)

与Delphi一起提供的Indy具有一个TIdStack.ResolveHost()功能和一个单独的TIdDNSResolver组件,它们都可以用来获取域的IP.它还具有TIdStack.LocalAddresses检索本地IPv4地址的属性.或者您可以直接使用套接字API gethostbyname()getaddrinfo()函数,以及特定于平台的API来枚举本地IP,例如GetAdaptersAddresses()Windows上的函数.

但是,不是让PHP脚本简单地将纯文本回送到您的应用程序,而是一个更安全的选项,它不需要您验证IP是让您的应用程序创建动态生成的nonce值并将其发送到PHP脚本,然后让脚本处理它,使用只有你知道的算法对其进行哈希处理,然后将其发送回应用程序.该应用程序可以执行相同的算法并比较结果.除非有人花时间对您的应用进行逆向工程,否则他们将无法使用自定义Xampp脚本重现您的算法或伪造其结果.

更好的是,使用SSL/TLS加密与域服务器的连接,并为您的域服务器提供一个SSL证书,您的应用可以在用PHP脚本交换任何数据之前验证该证书.如果您这么做,您可以继续使用纯文本回显,因为SSL/TLS将验证您是否已连接到您的域.