読者です 読者をやめる 読者になる 読者になる

tor判定器を作った

ふと思い立ったので、リクエストがtorによるものか否かを判定するためのgolangパッケージを作った。

tolice

このパッケージをimportすれば、golang製サービス上でリクエストがtorによるものか否かを判定することができる。

torからのリクエストはexitノードと呼ばれるサーバのIPアドレスを持って行われるため、exitノードのリストを持っていれば照らし合わせることで判定することができる。

Tor Network Statusを見ればexitノードのリストが手に入る。 csvでも配信されているため、それを用いればhtmlをスクレイピングするなどの苦労は不要になる。 注意点として、このwebサイトで配信されているcsvcsvでもcomma-separatedではなくreturn-separatedである。

exitノードのリストはサービス起動時に初期化したのち、なんらかのタイミングでの更新を繰り返すことが望ましいと思われるが、頻繁な更新は不要なはず。