【问题标题】:Delphi XE2 - How to get IP of a specified website?Delphi XE2 - 如何获取指定网站的IP?
【发布时间】:2014-07-07 19:12:25
【问题描述】:

我有一个程序在其中检查 Web 服务器上的 php 文件以查看用户是否已通过验证。 php 文件通过数据库运行并检查并回显“已验证”。

现在,人们现在可以通过安装 Xampp,在他们的 hosts 文件中将我的服务器路由到 127.0.0.1,然后设置一个回显已验证的脚本来轻松绕过验证系统。

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

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

【问题讨论】:

  • 您显然没有正确阅读问题。
  • @WarrenP 可以在主机文件中重新路由数字 ip

标签: delphi ip resolveurl


【解决方案1】:

我曾经使用类似的 hack 来绕过 ICQ 服务器端验证。当我想测试我未被邀请的 alpha/beta 版本时非常方便:-)

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    • 2013-02-24
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 2011-12-08
    相关资源
    最近更新 更多