2010-10-24 47 views
0

我需要使用PHP,也许有一些梨包或PHP内部功能。我该怎么做?我想检查IP地址到相应的主机名和主机名IP范围

我知道我需要gethostbyname()进行主机名检查,但我还需要此提供程序的ip范围。 例如: IP:5.7.8.9 主持人:美国供应商 IP范围5.7.8.0-5.7.9.0

是否有可能用PHP?

+0

这听起来像一个whois查询。我不确定是否可以通过简单的DNS查找。 – Lekensteyn 2010-10-24 08:09:08

回答

2

没有办法可以准确地看到没有访问BGP的IP范围,但如果你信任ISP提供正确的信息,你可以从whois中获得。使用shell_exec或类似的命令来调用whois客户端。

我建议你到底为这些标签:

  • inetnum
  • NetRange
  • CIDR
  • 路线

甚至更​​多。然而,Whois并不总是值得信赖的。这是一个没有定义标准格式的文本数据库,因此您可能不总是得到可用的答案,并且您并不总是知道要寻找什么。

正如我所说,最值得信赖的解决方案是获得真正的BGP访问,以便您可以检查实际的Internet路由。然而,这是相当先进的,所以也许有一些Web服务可以用于路由查找?

编辑 我居然发现这个项目,它提供了一个API,用于BGP查询:http://www.routeviews.org/

有在routeviews.org,ASN和 ASPATH TXT reconds的两个子域。 asn.routeviews.org地图 (解析)反向IPv4地址或 前缀(例如:128.223 - > 223.128.asn.routeviews.org)到所见最佳路由的始发AS(以及前缀和前缀 长度)通过 route-views2.routeviews.org。 aspath.routeviews.org与 的想法相同,但解析为完整的AS 路径。

这可以用于通过简单的DNS查询获取IP的子网。使用子网可以很容易地计算出IP范围(正如你可能已经知道的那样,范围只是子网的一个不同的表示法)。