それでも気分は高専生

元高専生が自分のやってきたことを記事として残すためのてきとーなブログ

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

割合的にそんなもんだよねというお気持ち.