TorノードのIPv6対応具合
とある研究会発表資料の嵩増しのため,Torノードがどの程度IPv6に対応しているか適当に調べた.
ソースコード
基本pythonはグラフをプロットするぐらいにしか使っていないので,ツッコミどころ満載かも.
#coding: UTF-8 import re from bs4 import BeautifulSoup html_file = './data/node_list.html' ipv4_pattern = re.compile('([0-9]+\.){3}[0-9]+') ipv6_pattern = re.compile('([0-9|a-f]{4}:){7}[0-9|a-f]{4}') count_v4 = 0 count_v6 = 0 with open (html_file) as f: s = f.read() soup = BeautifulSoup(s, 'lxml') for a in soup.find_all('td', attrs={"class", "line-content"}): txt = a.get_text() if ipv4_pattern.match(txt): count_v4+=1 if ipv6_pattern.match(txt): count_v6+=1 print("ipv4: %d/%d" % (count_v4, count_v4 + count_v6)) print("ipv6: %d/%d" % (count_v6, count_v4 + count_v6))
https://www.dan.me.uk/tornodes
からスクレイピングしてIPアドレスの形式でフィルタかけて計数するだけ.
スクレイピングというよりはHTMLをダウンロードしてきてファイルを調べている感じ.
(このページは一度アクセスすると30分間アクセスを禁止されるので,コーディング中のトライアンドエラーが超面倒くさい)
結果
2019.03.03時点
ipv4: 6624/7614 ipv6: 990/7614
割合的にそんなもんだよねというお気持ち.