2015年4月26日星期日

我和comcast网络


  前一段坐高铁的时候,翻阅上面的杂志,发现一篇吐槽美国网络巨头comcast的文章,说它如何坑,服务如何不好。我这土鳖也没用过comcast,无法评价它的服务到底如何。
  不过,comcast让我想起了在一家小公司打杂的经历,那时候需要对很多IP进行traceroute测量,简直是无尽的traceroute。然后对结果进行分析,得出一些结论,记得他们总说comcast的定位效果好,没想到现在离开了那里,依然可以看到comcast,不过是对comcast的吐槽。
  哈哈,网络真是把世界变得很小,我这个很少出省的人居然还能和大洋彼岸的ISP有点什么关系。
  最后再做一个traceroute玩玩,不知道下一次能玩traceroute是什么时候了:
➜  Desktop  traceroute www.comcast.com
traceroute to www-prd.g.comcast.com (96.114.156.20), 64 hops max, 52 byte packets
 1  10.10.0.1 (10.10.0.1)  87.486 ms  84.712 ms  88.840 ms
 2  106.187.33.3 (106.187.33.3)  94.097 ms  90.211 ms  85.432 ms
 3  124.215.199.125 (124.215.199.125)  83.513 ms  89.550 ms  91.969 ms
 4  * * otejbb206.int-gw.kddi.ne.jp (124.215.194.177)  110.009 ms
 5  pajbb002.int-gw.kddi.ne.jp (203.181.100.202)  222.177 ms
    pajbb002.int-gw.kddi.ne.jp (203.181.100.206)  214.200 ms
    pajbb001.int-gw.kddi.ne.jp (203.181.100.134)  205.113 ms
 6  ix-pa4.int-gw.kddi.ne.jp (111.87.3.42)  221.573 ms
    ix-pa4.int-gw.kddi.ne.jp (111.87.3.70)  225.931 ms  221.207 ms
 7  124.215.192.126 (124.215.192.126)  226.368 ms  216.431 ms  209.909 ms
 8  pos-3-15-0-0-cr01.ashburn.va.ibone.comcast.net (68.86.86.25)  263.942 ms
    pos-3-2-0-0-cr01.56marietta.ga.ibone.comcast.net (68.86.86.165)  227.324 ms
    pos-3-15-0-0-cr01.ashburn.va.ibone.comcast.net (68.86.86.25)  235.313 ms
 9  be-10919-cr01.1601milehigh.co.ibone.comcast.net (68.86.85.154)  265.006 ms  261.971 ms  239.354 ms
10  he-0-13-0-0-ar01.area4.il.chicago.comcast.net (68.86.94.126)  256.685 ms  253.493 ms  247.654 ms
11  te-0-1-0-0-ar02-d.potomac.co.ndcwest.comcast.net (68.86.206.2)  258.036 ms  254.292 ms  269.330 ms
12  162.151.27.218 (162.151.27.218)  241.044 ms  252.085 ms  259.350 ms
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  162.151.27.218 (162.151.27.218)  443.467 ms !X * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *
31  * 162.151.27.218 (162.151.27.218)  216.655 ms !X *
32  * * *
33  * * *
从路由器上看出来,从日本走到了美国,(124.215.192.126 搞不好还是在海底的路由器呢) 到了芝加哥(不知道为什么,芝加哥总让我想起一些吃的东西,比如芝士汉堡什么的...), 科罗拉多州 最后就不知道消逝在哪了。
如果使用MaxMind的IP数据库的话,可以看出数据包经过的路由器:
from subprocess import Popen, PIPE
import re
import pygeoip

def get_traceroute_res(hostname, max_hop=10):

  p = Popen(['traceroute', '-m', str(max_hop), hostname], stdin=PIPE, stdout=PIPE, stderr=PIPE)
  output, err = p.communicate()
  rc = p.returncode

  return output


def get_all_ip(result):
  reip = re.compile(r'(?<![\.\d])(?:\d{1,3}\.){3}\d{1,3}(?![\.\d])')
  return [i for i in reip.findall(result) if i]

if __name__ == '__main__':

  result = get_traceroute_res('comcast.com')
  ip_list = get_all_ip(result)
  gi = pygeoip.GeoIP("GeoLiteCity.dat")

  for ip in ip_list:
    ip_info = gi.record_by_addr(ip)
    try:
      print ip_info['country_name'], ip_info['latitude'], ip_info['longitude'], ip
    except Exception, error:
      pass
结果如下:
Japan 35.69 139.69 106.187.33.3
Japan 35.69 139.69 106.187.33.3
Japan 35.69 139.69 124.215.199.125
Japan 35.69 139.69 124.215.199.125
Japan 35.69 139.69 124.215.194.178
Japan 35.69 139.69 124.215.194.162
Japan 35.69 139.69 124.215.194.177
Japan 35.69 139.69 203.181.100.66
Japan 35.69 139.69 203.181.100.202
Japan 35.69 139.69 111.87.3.46
Japan 35.69 139.69 111.87.3.54
Japan 35.69 139.69 124.215.192.126
Japan 35.69 139.69 124.215.192.126
United States 38.0 -97.0 68.86.85.154
United States 38.0 -97.0 68.86.94.126

没有评论:

发表评论