メールアドレスなどで、そのメールがどの辺りから来たものかEarthで確認してみます。
この手の仕組みの場合、WebアプリやWebサービスでは実現できません(私見ですが)。
ローカル環境で実行するのでアプリが必要ですが、スクラッチから作るのも面倒です。
で、Windowsの場合はVBScript、UNIX(Linux)の場合はUNIXシェルを使って作ってみます。
どちらも、なんもインストールせずに標準環境で使えるものです。
Macの場合は....何でしょう?
現在Macを持っていないので定かじゃないですが、AppleScript....でしょうか?MacならUNIXシェルも動くかもしれません。
(AppleScriptはsystem7の頃からありますが、現在OS Xでも使えるようなことがどっかに書いてました)
アドレスから位置情報を取得する仕組みはサーバーに持たせています。
ここ参照、
IPアドレスとロケーション情報
全体の流れはこんな感じ。
●メールアドレスのドメインを参照
メールのヘッダー情報なんかから参照してください。
●ローカルで、pingを実行して、ドメインの存在確認とIPアドレスの取得を行う
●存在すれば、IPアドレスをサーバーに投げてロケーション情報(主に位置座標)を取得
この位置情報は、メールが最初に発信されたISPの大まかな位置という意味で、
そこがメールの発信地という意味ではありません、誤解無きように
●位置座標(緯度・経度)からEarth用のKMLを作成
(KMLは、始点から終点にフライトパスのようなルートを表示するコード)
例えば、こんな感じ。
ezweb.ne.jpのメールが大阪の我が家に来た際のルートです。
中間の中継ルーターも一緒にみる場合は、tracert(traceroute)を使います。
注
WindowsのPingやTracertの出力フォーマットが変更になった場合は、このスクリプトは無効になります。
もしお気づきの方がいらっしゃたっらご一報いただけたらうれしいですし、Scriptを書き換えていただいても結構です。
Windows(Ping)の場合
まずはpingを使ってみます。
VBScriptでは、pingの結果を標準出力で取得して、IPアドレスをHttpRequestでサーバーに投げて戻った結果をKMLに整形して、UTF-8でファイルに保存するという流れになっています。
sample_kmlofIpaddressByPing.vbs
zipに同梱されているline_ini.txtに書かれているのは線の属性データです。
線の太さ
線の色
ルートの最高高度
色は、16進表記でαBGRの順番になっています。
vbsファイルをダブルクリックすると、入力ダイアログが開きます。
メールアドレスが、xxxxx@ezweb.ne.jpの場合
route2target.kmlというファイル名で、vbsと同じ場所に作成されます。
現状DOS窓が出たままになってますんで、終わったら閉じてやってください。
Windows(Tracert)の場合
Tracertを使って中継ルーターの経路も表示してみます。
sample_kmlofIpaddressByTracert.vbe
Tracert版のコードはエンコードされています。これはソースがバグッている可能性があるのでフィックスされるまで晒すのはやめとこうという意味です。
バグっててもいいよとか修正したろやないか!という方はデコードしていただいて結構です。scrdec18.exeを使われる場合は、cpオプションは932です。
で、例えば、metaioというドイツにあるARアプリメーカーからのメールの場合。
Tracertは少々時間のかかるコマンドなので、こういうDOS窓がしばらく出っぱなしになります。
このメッセージが出たらOKをクリックしてしばらく待ちます。
これで終了。route2target.kmlが作成されます。
日本国内の中継ルーターを経由。
途中ヨーロッパを経由してるのは、ドイツメーカーという理由?よくわかりません、偶然かも。
メールサーバーはアメリカの東海岸側にあるようです。
でもこの表現はあくまでメタファーです。
実際はネットワークケーブルや海底ケーブルを経由してのもので、メールなんかが空飛んで来るわけないですから。
サンプル
ドメイントレースではなく、単純に緯度・経度データの羅列をKMLにする場合は、こちら。
ExcelのVBAでEarth用KMLファイルを作成
Excelを使って、VBAで作ってみました。
UNIX(Linux)の場合
工事中