更新#
2023.04.09
ブログは xLog に移行しました。旧ブログは引き続き更新されますが、互換性の維持とアーカイブのみ行います。2023.03.03
ブログは複数のプラットフォームと回線で展開されているため、フッターが CI プラットフォームの通知に変更されました。
この記事は、huai.pub が 2020-03-13 17:55:26 に発表した記事に基づいており、署名 - 非商業利用 4.0 国際 (CC BY-NC 4.0)に従っています。
前書き#
このブログは設立以来、Cloudflare Pages と Vercel にホスティングされてきました。数ヶ月前、Vercel の A レコード IP が GFW によって部分的に汚染され、テストの全国測定で全国の 15% の地域が汚染されました1。こんなに多くの人が私の精魂込めたブログを見られないなんて我慢できません!
そこで、先週ブログを再び Cloudflare Pages に切り替えました。遅延は Vercel には及びませんが、全国的に平均 150ms の ping が出ています2。しかし、Cloudflare は非常に強力なカスタマイズ性とグローバルな可用性を持っているので、その遅延は気にしません。
その時、私はこのブログを見つけました:CloudFlare のページで現在のノード情報を表示する
Cloudflare に切り替えたので、何かクールなことをしない手はありません。フッターに配置し、ページ全体がレンダリングされた後に情報を表示し、パフォーマンスに影響を与えずに接続されているノードをお知らせしますついでにちょっと自慢も
js スクリプト#
コード#
私は元の記事のスクリプト取得の戻り値を少し変更し、コードを少し削減しました~~、そして n 多のコードを追加しました~~
元のスクリプトはindexOf()
でノードをマッチングしていましたが、修正版では正規表現で置き換え、配列内に JSON をネストする方法に変更しました絶対に元の括弧が気に入らなかったわけではありません、これによりより直接的で、エラーが出にくくなります。
フォーマットされたJavaScriptスクリプト、長すぎるのでここで折りたたんでおきます
```JavaScript $(document).ready( $.ajax({ url: "/cdn-cgi/trace", success: function (data, status) { let areas = [ '{"s":"TNR","l":"アンタナナリボ, マダガスカル"}', '{"s":"CPT","l":"ケープタウン, 南アフリカ"}', '{"s":"CMN","l":"カサブランカ, モロッコ"}', '{"s":"DAR","l":"ダルエスサラーム, タンザニア"}', '{"s":"JIB","l":"ジブチ市, ジブチ"}', '{"s":"DUR","l":"ダーバン, 南アフリカ"}', '{"s":"JNB","l":"ヨハネスブルグ, 南アフリカ"}', '{"s":"KGL","l":"キガリ, ルワンダ"}', '{"s":"LOS","l":"ラゴス, ナイジェリア"}', '{"s":"LAD","l":"ルアンダ, アンゴラ"}', '{"s":"MPM","l":"マプト, モザンビーク"}', '{"s":"MBA","l":"モンバサ, ケニア"}', '{"s":"MRU","l":"ポートルイス, モーリシャス"}', '{"s":"RUN","l":"レユニオン, フランス"}', '{"s":"BLR","l":"バンガロール, インド"}', '{"s":"BKK","l":"バンコク, タイ"}', '{"s":"BWN","l":"バンダルスリブガワン, ブルネイ"}', '{"s":"CEB","l":"セブ, フィリピン"}', '{"s":"CTU","l":"成都, 🇨🇳 中国本土"}', '{"s":"MAA","l":"チェンナイ, インド"}', '{"s":"CGP","l":"チッタゴン, バングラデシュ"}', '{"s":"CKG","l":"重慶, 🇨🇳 中国本土"}', '{"s":"CMB","l":"コロンボ, スリランカ"}', '{"s":"DAC","l":"ダッカ, バングラデシュ"}', '{"s":"SZX","l":"東莞, 🇨🇳 中国本土"}', '{"s":"FUO","l":"仏山, 🇨🇳 中国本土"}', '{"s":"FOC","l":"福州, 🇨🇳 中国本土"}', '{"s":"CAN","l":"広州, 🇨🇳 中国本土"}', '{"s":"HGH","l":"杭州, 🇨🇳 中国本土"}', '{"s":"HAN","l":"ハノイ, ベトナム"}', '{"s":"HNY","l":"衡陽, 🇨🇳 中国本土"}', '{"s":"SGN","l":"ホーチミン市, ベトナム"}', '{"s":"HKG","l":"🇭🇰 香港"}', '{"s":"HYD","l":"ハイデラバード, インド"}', '{"s":"ISB","l":"イスラマバード, パキスタン"}', '{"s":"CGK","l":"ジャカルタ, インドネシア"}', '{"s":"TNA","l":"済南, 🇨🇳 中国本土"}', '{"s":"KHI","l":"カラチ, パキスタン"}', '{"s":"KTM","l":"カトマンズ, ネパール"}', '{"s":"CCU","l":"コルカタ, インド"}', '{"s":"KUL","l":"クアラルンプール, マレーシア"}', '{"s":"LHE","l":"ラホール, パキスタン"}', '{"s":"NAY","l":"廊坊, 🇨🇳 中国本土"}', '{"s":"LYA","l":"洛陽, 🇨🇳 中国本土"}', '{"s":"MFM","l":"🇲🇴 マカオ"}', '{"s":"MLE","l":"マレ, モルディブ"}', '{"s":"MNL","l":"マニラ, フィリピン"}', '{"s":"BOM","l":"ムンバイ, インド"}', '{"s":"NAG","l":"ナグプール, インド"}', '{"s":"NNG","l":"南寧, 🇨🇳 中国本土"}', '{"s":"DEL","l":"ニューデリー, インド"}', '{"s":"KIX","l":"大阪, 日本"}', '{"s":"PNH","l":"プノンペン, カンボジア"}', '{"s":"TAO","l":"青島, 🇨🇳 中国本土"}', '{"s":"ICN","l":"ソウル, 韓国"}', '{"s":"SHA","l":"上海, 🇨🇳 中国本土"}', '{"s":"SHE","l":"瀋陽, 🇨🇳 中国本土"}', '{"s":"SJW","l":"石家庄, 🇨🇳 中国本土"}', '{"s":"SIN","l":"シンガポール, シンガポール"}', '{"s":"SZV","l":"蘇州, 🇨🇳 中国本土"}', '{"s":"TPE","l":"台北, 🇨🇳 台湾"}', '{"s":"PBH","l":"ティンプー, ブータン"}', '{"s":"TSN","l":"天津, 🇨🇳 中国本土"}', '{"s":"NRT","l":"東京, 日本"}', '{"s":"ULN","l":"ウランバートル, モンゴル"}', '{"s":"VTE","l":"ビエンチャン, ラオス"}', '{"s":"WUH","l":"武漢, 🇨🇳 中国本土"}', '{"s":"WUX","l":"無錫, 🇨🇳 中国本土"}', '{"s":"XIY","l":"西安, 🇨🇳 中国本土"}', '{"s":"EVN","l":"エレバン, アルメニア"}', '{"s":"CGO","l":"鄭州, 🇨🇳 中国本土"}', '{"s":"CSX","l":"株洲, 🇨🇳 中国本土"}', '{"s":"AMS","l":"アムステルダム, オランダ"}', '{"s":"ATH","l":"アテネ, ギリシャ"}', '{"s":"BCN","l":"バルセロナ, スペイン"}', '{"s":"BEG","l":"ベオグラード, セルビア"}', '{"s":"TXL","l":"ベルリン, ドイツ"}', '{"s":"BRU","l":"ブリュッセル, ベルギー"}', '{"s":"OTP","l":"ブカレスト, ルーマニア"}', '{"s":"BUD","l":"ブダペスト, ハンガリー"}', '{"s":"KIV","l":"キシナウ, モルドバ"}', '{"s":"CPH","l":"コペンハーゲン, デンマーク"}', '{"s":"ORK","l":"コーク, アイルランド"}', '{"s":"DUB","l":"ダブリン, アイルランド"}', '{"s":"DUS","l":"デュッセルドルフ, ドイツ"}', '{"s":"EDI","l":"エディンバラ, イギリス"}', '{"s":"FRA","l":"フランクフルト, ドイツ"}', '{"s":"GVA","l":"ジュネーブ, スイス"}', '{"s":"GOT","l":"ヨーテボリ, スウェーデン"}', '{"s":"HAM","l":"ハンブルク, ドイツ"}', '{"s":"HEL","l":"ヘルシンキ, フィンランド"}', '{"s":"IST","l":"イスタンブール, トルコ"}', '{"s":"KBP","l":"キエフ, ウクライナ"}', '{"s":"LIS","l":"リスボン, ポルトガル"}', '{"s":"LHR","l":"ロンドン, イギリス"}', '{"s":"LUX","l":"ルクセンブルク市, ルクセンブルク"}', '{"s":"MAD","l":"マドリード, スペイン"}', '{"s":"MAN","l":"マンチェスター, イギリス"}', '{"s":"MRS","l":"マルセイユ, フランス"}', '{"s":"MXP","l":"ミラノ, イタリア"}', '{"s":"DME","l":"モスクワ, ロシア"}', '{"s":"MUC","l":"ミュンヘン, ドイツ"}', '{"s":"LCA","l":"ニコシア, キプロス"}', '{"s":"OSL","l":"オスロ, ノルウェー"}', '{"s":"CDG","l":"パリ, フランス"}', '{"s":"PRG","l":"プラハ, チェコ共和国"}', '{"s":"KEF","l":"レイキャビク, アイスランド"}', '{"s":"RIX","l":"リガ, ラトビア"}', '{"s":"FCO","l":"ローマ, イタリア"}', '{"s":"LED","l":"サンクトペテルブルク, ロシア"}', '{"s":"SOF","l":"ソフィア, ブルガリア"}', '{"s":"ARN","l":"ストックホルム, スウェーデン"}', '{"s":"TLL","l":"タリン, エストニア"}', '{"s":"SKG","l":"テッサロニキ, ギリシャ"}', '{"s":"VIE","l":"ウィーン, オーストリア"}', '{"s":"VNO","l":"ヴィリニュス, リトアニア"}', '{"s":"WAW","l":"ワルシャワ, ポーランド"}', '{"s":"ZAG","l":"ザグレブ, クロアチア"}', '{"s":"ZRH","l":"チューリッヒ, スイス"}', '{"s":"ARI","l":"アリカ, チリ"}', '{"s":"ASU","l":"アスンシオン, パラグアイ"}', '{"s":"BOG","l":"ボゴタ, コロンビア"}', '{"s":"EZE","l":"ブエノスアイレス, アルゼンチン"}', '{"s":"CWB","l":"クリチバ, ブラジル"}', '{"s":"FOR","l":"フォルタレザ, ブラジル"}', '{"s":"GUA","l":"グアテマラシティ, グアテマラ"}', '{"s":"LIM","l":"リマ, ペルー"}', '{"s":"MDE","l":"メデジン, コロンビア"}', '{"s":"PTY","l":"パナマシティ, パナマ"}', '{"s":"POA","l":"ポルトアレグレ, ブラジル"}', '{"s":"UIO","l":"キト, エクアドル"}', '{"s":"GIG","l":"リオデジャネイロ, ブラジル"}', '{"s":"GRU","l":"サンパウロ, ブラジル"}', '{"s":"SCL","l":"サンティアゴ, チリ"}', '{"s":"CUR","l":"ウィレムスタット, キュラソー"}', '{"s":"GND","l":"セントジョージズ, グレナダ"}', '{"s":"AMM","l":"アンマン, ヨルダン"}', '{"s":"BGW","l":"バグダッド, イラク"}', '{"s":"GYD","l":"バクー, アゼルバイジャン"}', '{"s":"BEY","l":"ベイルート, レバノン"}', '{"s":"DOH","l":"ドーハ, カタール"}', '{"s":"DXB","l":"ドバイ, アラブ首長国連邦"}', '{"s":"KWI","l":"クウェートシティ, クウェート"}', '{"s":"BAH","l":"マナマ, バーレーン"}', '{"s":"MCT","l":"マスカット, オマーン"}', '{"s":"ZDM","l":"ラムアッラー"}', '{"s":"RUH","l":"リヤド, サウジアラビア"}', '{"s":"TLV","l":"テルアビブ, イスラエル"}', '{"s":"IAD","l":"アシュバーン, VA, アメリカ合衆国"}', '{"s":"ATL","l":"アトランタ, GA, アメリカ合衆国"}', '{"s":"BOS","l":"ボストン, MA, アメリカ合衆国"}', '{"s":"BUF","l":"バッファロー, NY, アメリカ合衆国"}', '{"s":"YYC","l":"カルガリー, AB, カナダ"}', '{"s":"CLT","l":"シャーロット, NC, アメリカ合衆国"}', '{"s":"ORD","l":"シカゴ, IL, アメリカ合衆国"}', '{"s":"CMH","l":"コロンバス, OH, アメリカ合衆国"}', '{"s":"DFW","l":"ダラス, TX, アメリカ合衆国"}', '{"s":"DEN","l":"デンバー, CO, アメリカ合衆国"}', '{"s":"DTW","l":"デトロイト, MI, アメリカ合衆国"}', '{"s":"HNL","l":"ホノルル, HI, アメリカ合衆国"}', '{"s":"IAH","l":"ヒューストン, TX, アメリカ合衆国"}', '{"s":"IND","l":"インディアナポリス, IN, アメリカ合衆国"}', '{"s":"JAX","l":"ジャクソンビル, FL, アメリカ合衆国"}', '{"s":"MCI","l":"カンザスシティ, MO, アメリカ合衆国"}', '{"s":"LAS","l":"ラスベガス, NV, アメリカ合衆国"}', '{"s":"LAX","l":"ロサンゼルス, CA, アメリカ合衆国"}', '{"s":"MFE","l":"マッカレン, TX, アメリカ合衆国"}', '{"s":"MEM","l":"メンフィス, TN, アメリカ合衆国"}', '{"s":"MEX","l":"メキシコシティ, メキシコ"}', '{"s":"MIA","l":"マイアミ, FL, アメリカ合衆国"}', '{"s":"MSP","l":"ミネアポリス, MN, アメリカ合衆国"}', '{"s":"MGM","l":"モンゴメリー, AL, アメリカ合衆国"}', '{"s":"YUL","l":"モントリオール, QC, カナダ"}', '{"s":"BNA","l":"ナッシュビル, TN, アメリカ合衆国"}', '{"s":"EWR","l":"ニューアーク, NJ, アメリカ合衆国"}', '{"s":"ORF","l":"ノーフォーク, VA, アメリカ合衆国"}', '{"s":"OMA","l":"オマハ, NE, アメリカ合衆国"}', '{"s":"PHL","l":"フィラデルフィア, アメリカ合衆国"}', '{"s":"PHX","l":"フェニックス, AZ, アメリカ合衆国"}', '{"s":"PIT","l":"ピッツバーグ, PA, アメリカ合衆国"}', '{"s":"PAP","l":"ポルトープランス, ハイチ"}', '{"s":"PDX","l":"ポートランド, OR, アメリカ合衆国"}', '{"s":"QRO","l":"ケレタロ, MX, メキシコ"}', '{"s":"RIC","l":"リッチモンド, バージニア"}', '{"s":"SMF","l":"サクラメント, CA, アメリカ合衆国"}', '{"s":"SLC","l":"ソルトレイクシティ, UT, アメリカ合衆国"}', '{"s":"SAN","l":"サンディエゴ, CA, アメリカ合衆国"}', '{"s":"SJC","l":"サンノゼ, CA, アメリカ合衆国"}', '{"s":"YXE","l":"サスカトゥーン, SK, カナダ"}', '{"s":"SEA","l":"シアトル, WA, アメリカ合衆国"}', '{"s":"STL","l":"セントルイス, MO, アメリカ合衆国"}', '{"s":"TPA","l":"タンパ, FL, アメリカ合衆国"}', '{"s":"YYZ","l":"トロント, ON, カナダ"}', '{"s":"YVR","l":"バンクーバー, BC, カナダ"}', '{"s":"TLH","l":"タラハシー, FL, アメリカ合衆国"}', '{"s":"YWG","l":"ウィニペグ, MB, カナダ"}', '{"s":"ADL","l":"アデレード, SA, オーストラリア"}', '{"s":"AKL","l":"オークランド, ニュージーランド"}', '{"s":"BNE","l":"ブリスベン, QLD, オーストラリア"}', '{"s":"MEL","l":"メルボルン, VIC, オーストラリア"}', '{"s":"NOU","l":"ヌーメア, ニューカレドニア"}', '{"s":"PER","l":"パース, WA, オーストラリア"}', '{"s":"SYD","l":"シドニー, NSW, オーストラリア"}' ]; let area = data.split("colo=")[1].split("\n")[0]; for (var i = 0; i < areas.length; i++) { const as = JSON.parse(areas[i]); if (as.s == area) { document.getElementById("cdn").innerHTML = as.l; break; }; } } } ) ); ```修正版ではすべての中国のノードに国旗の絵文字を追加し、中国語に置き換えました。興味のある方は他のノードも自分で置き換えることができます。
ただし、Cloudflare の中国本土ノードは Enterprise プランのユーザーであり、登録が必要です。私も sukka のような大物ではないので中国本土のノードが表示される日が来るとは思えません😢
原理#
Cloudflare はすべての顧客に/cdn-cgi/
エンドポイントを追加しました。Cloudflare を利用している任意のウェブサイトにアクセスすると、example.com/cdn-cgi/trace
にアクセスすることで、ユーザーの現在の情報(IP アドレス、CDN ノード、WARP の有無、TLS プロトコルバージョンなど)が返されます。
これにより、フロントエンドでこのエンドポイントにアクセスし、内容を解析して、対応する ID のタグ内に書き込むことで、現在のユーザーと Cloudflare CDN の関係を表示できます。
使用方法#
前提条件#
jQuery を使用してcdn-cgi
にアクセスしているため、このスクリプトを使用するにはこのライブラリを先にインポートする必要があります。このライブラリをすでに引用しているブログは再度引用する必要はありません。
現在、大部分のブログは jQuery ライブラリを使用しているため、コードを変更する必要はほとんどありません。どうしてもない場合は、簡単にこのスクリプトを改写して使用できます。
最小限の縮小版:
$(document).ready($.ajax({url: "/cdn-cgi/trace",success: function(data, status) {let areas=['{"s":"TNR","l":"アンタナナリボ, マダガスカル"}','{"s":"CPT","l":"ケープタウン, 南アフリカ"}','{"s":"CMN","l":"カサブランカ, モロッコ"}','{"s":"DAR","l":"ダルエスサラーム, タンザニア"}','{"s":"JIB","l":"ジブチ市, ジブチ"}','{"s":"DUR","l":"ダーバン, 南アフリカ"}','{"s":"JNB","l":"ヨハネスブルグ, 南アフリカ"}','{"s":"KGL","l":"キガリ, ルワンダ"}','{"s":"LOS","l":"ラゴス, ナイジェリア"}','{"s":"LAD","l":"ルアンダ, アンゴラ"}','{"s":"MPM","l":"マプト, モザンビーク"}','{"s":"MBA","l":"モンバサ, ケニア"}','{"s":"MRU","l":"ポートルイス, モーリシャス"}','{"s":"RUN","l":"レユニオン, フランス"}','{"s":"BLR","l":"バンガロール, インド"}','{"s":"BKK","l":"バンコク, タイ"}','{"s":"BWN","l":"バンダルスリブガワン, ブルネイ"}','{"s":"CEB","l":"セブ, フィリピン"}','{"s":"CTU","l":"成都, 🇨🇳 中国本土"}','{"s":"MAA","l":"チェンナイ, インド"}','{"s":"CGP","l":"チッタゴン, バングラデシュ"}','{"s":"CKG","l":"重慶, 🇨🇳 中国本土"}','{"s":"CMB","l":"コロンボ, スリランカ"}','{"s":"DAC","l":"ダッカ, バングラデシュ"}','{"s":"SZX","l":"東莞, 🇨🇳 中国本土"}','{"s":"FUO","l":"仏山, 🇨🇳 中国本土"}','{"s":"FOC","l":"福州, 🇨🇳 中国本土"}','{"s":"CAN","l":"広州, 🇨🇳 中国本土"}','{"s":"HGH","l":"杭州, 🇨🇳 中国本土"}','{"s":"HAN","l":"ハノイ, ベトナム"}','{"s":"HNY","l":"衡陽, 🇨🇳 中国本土"}','{"s":"SGN","l":"ホーチミン市, ベトナム"}','{"s":"HKG","l":"🇭🇰 香港"}','{"s":"HYD","l":"ハイデラバード, インド"}','{"s":"ISB","l":"イスラマバード, パキスタン"}','{"s":"CGK","l":"ジャカルタ, インドネシア"}','{"s":"TNA","l":"済南, 🇨🇳 中国本土"}','{"s":"KHI","l":"カラチ, パキスタン"}','{"s":"KTM","l":"カトマンズ, ネパール"}','{"s":"CCU","l":"コルカタ, インド"}','{"s":"KUL","l":"クアラルンプール, マレーシア"}','{"s":"LHE","l":"ラホール, パキスタン"}','{"s":"NAY","l":"廊坊, 🇨🇳 中国本土"}','{"s":"LYA","l":"洛陽, 🇨🇳 中国本土"}','{"s":"MFM","l":"🇲🇴 マカオ"}','{"s":"MLE","l":"マレ, モルディブ"}','{"s":"MNL","l":"マニラ, フィリピン"}','{"s":"BOM","l":"ムンバイ, インド"}','{"s":"NAG","l":"ナグプール, インド"}','{"s":"NNG","l":"南寧, 🇨🇳 中国本土"}','{"s":"DEL","l":"ニューデリー, インド"}','{"s":"KIX","l":"大阪, 日本"}','{"s":"PNH","l":"プノンペン, カンボジア"}','{"s":"TAO","l":"青島, 🇨🇳 中国本土"}','{"s":"ICN","l":"ソウル, 韓国"}','{"s":"SHA","l":"上海, 🇨🇳 中国本土"}','{"s":"SHE","l":"瀋陽, 🇨🇳 中国本土"}','{"s":"SJW","l":"石家庄, 🇨🇳 中国本土"}','{"s":"SIN","l":"シンガポール, シンガポール"}','{"s":"SZV","l":"蘇州, 🇨🇳 中国本土"}','{"s":"TPE","l":"台北, 🇨🇳 台湾"}','{"s":"PBH","l":"ティンプー, ブータン"}','{"s":"TSN","l":"天津, 🇨🇳 中国本土"}','{"s":"NRT","l":"東京, 日本"}','{"s":"ULN","l":"ウランバートル, モンゴル"}','{"s":"VTE","l":"ビエンチャン, ラオス"}','{"s":"WUH","l":"武漢, 🇨🇳 中国本土"}','{"s":"WUX","l":"無錫, 🇨🇳 中国本土"}','{"s":"XIY","l":"西安, 🇨🇳 中国本土"}','{"s":"EVN","l":"エレバン, アルメニア"}','{"s":"CGO","l":"鄭州, 🇨🇳 中国本土"}','{"s":"CSX","l":"株洲, 🇨🇳 中国本土"}','{"s":"AMS","l":"アムステルダム, オランダ"}','{"s":"ATH","l":"アテネ, ギリシャ"}','{"s":"BCN","l":"バルセロナ, スペイン"}','{"s":"BEG","l":"ベオグラード, セルビア"}','{"s":"TXL","l":"ベルリン, ドイツ"}','{"s":"BRU","l":"ブリュッセル, ベルギー"}','{"s":"OTP","l":"ブカレスト, ルーマニア"}','{"s":"BUD","l":"ブダペスト, ハンガリー"}','{"s":"KIV","l":"キシナウ, モルドバ"}','{"s":"CPH","l":"コペンハーゲン, デンマーク"}','{"s":"ORK","l":"コーク, アイルランド"}','{"s":"DUB","l":"ダブリン, アイルランド"}','{"s":"DUS","l":"デュッセルドルフ, ドイツ"}','{"s":"EDI","l":"エディンバラ, イギリス"}','{"s":"FRA","l":"フランクフルト, ドイツ"}','{"s":"GVA","l":"ジュネーブ, スイス"}','{"s":"GOT","l":"ヨーテボリ, スウェーデン"}','{"s":"HAM","l":"ハンブルク, ドイツ"}','{"s":"HEL","l":"ヘルシンキ, フィンランド"}','{"s":"IST","l":"イスタンブール, トルコ"}','{"s":"KBP","l":"キエフ, ウクライナ"}','{"s":"LIS","l":"リスボン, ポルトガル"}','{"s":"LHR","l":"ロンドン, イギリス"}','{"s":"LUX","l":"ルクセンブルク市, ルクセンブルク"}','{"s":"MAD","l":"マドリード, スペイン"}','{"s":"MAN","l":"マンチェスター, イギリス"}','{"s":"MRS","l":"マルセイユ, フランス"}','{"s":"MXP","l":"ミラノ, イタリア"}','{"s":"DME","l":"モスクワ, ロシア"}','{"s":"MUC","l":"ミュンヘン, ドイツ"}','{"s":"LCA","l":"ニコシア, キプロス"}','{"s":"OSL","l":"オスロ, ノルウェー"}','{"s":"CDG","l":"パリ, フランス"}','{"s":"PRG","l":"プラハ, チェコ共和国"}','{"s":"KEF","l":"レイキャビク, アイスランド"}','{"s":"RIX","l":"リガ, ラトビア"}','{"s":"FCO","l":"ローマ, イタリア"}','{"s":"LED","l":"サンクトペテルブルク, ロシア"}','{"s":"SOF","l":"ソフィア, ブルガリア"}','{"s":"ARN","l":"ストックホルム, スウェーデン"}','{"s":"TLL","l":"タリン, エストニア"}','{"s":"SKG","l":"テッサロニキ, ギリシャ"}','{"s":"VIE","l":"ウィーン, オーストリア"}','{"s":"VNO","l":"ヴィリニュス, リトアニア"}','{"s":"WAW","l":"ワルシャワ, ポーランド"}','{"s":"ZAG","l":"ザグレブ, クロアチア"}','{"s":"ZRH","l":"チューリッヒ, スイス"}','{"s":"ARI","l":"アリカ, チリ"}','{"s":"ASU","l":"アスンシオン, パラグアイ"}','{"s":"BOG","l":"ボゴタ, コロンビア"}','{"s":"EZE","l":"ブエノスアイレス, アルゼンチン"}','{"s":"CWB","l":"クリチバ, ブラジル"}','{"s":"FOR","l":"フォルタレザ, ブラジル"}','{"s":"GUA","l":"グアテマラシティ, グアテマラ"}','{"s":"LIM","l":"リマ, ペルー"}','{"s":"MDE","l":"メデジン, コロンビア"}','{"s":"PTY","l":"パナマシティ, パナマ"}','{"s":"POA","l":"ポルトアレグレ, ブラジル"}','{"s":"UIO","l":"キト, エクアドル"}','{"s":"GIG","l":"リオデジャネイロ, ブラジル"}','{"s":"GRU","l":"サンパウロ, ブラジル"}','{"s":"SCL","l":"サンティアゴ, チリ"}','{"s":"CUR","l":"ウィレムスタット, キュラソー"}','{"s":"GND","l":"セントジョージズ, グレナダ"}','{"s":"AMM","l":"アンマン, ヨルダン"}','{"s":"BGW","l":"バグダッド, イラク"}','{"s":"GYD","l":"バクー, アゼルバイジャン"}','{"s":"BEY","l":"ベイルート, レバノン"}','{"s":"DOH","l":"ドーハ, カタール"}','{"s":"DXB","l":"ドバイ, アラブ首長国連邦"}','{"s":"KWI","l":"クウェートシティ, クウェート"}','{"s":"BAH","l":"マナマ, バーレーン"}','{"s":"MCT","l":"マスカット, オマーン"}','{"s":"ZDM","l":"ラムアッラー"}','{"s":"RUH","l":"リヤド, サウジアラビア"}','{"s":"TLV","l":"テルアビブ, イスラエル"}','{"s":"IAD","l":"アシュバーン, VA, アメリカ合衆国"}','{"s":"ATL","l":"アトランタ, GA, アメリカ合衆国"}','{"s":"BOS","l":"ボストン, MA, アメリカ合衆国"}','{"s":"BUF","l":"バッファロー, NY, アメリカ合衆国"}','{"s":"YYC","l":"カルガリー, AB, カナダ"}','{"s":"CLT","l":"シャーロット, NC, アメリカ合衆国"}','{"s":"ORD","l":"シカゴ, IL, アメリカ合衆国"}','{"s":"CMH","l":"コロンバス, OH, アメリカ合衆国"}','{"s":"DFW","l":"ダラス, TX, アメリカ合衆国"}','{"s":"DEN","l":"デンバー, CO, アメリカ合衆国"}','{"s":"DTW","l":"デトロイト, MI, アメリカ合衆国"}','{"s":"HNL","l":"ホノルル, HI, アメリカ合衆国"}','{"s":"IAH","l":"ヒューストン, TX, アメリカ合衆国"}','{"s":"IND","l":"インディアナポリス, IN, アメリカ合衆国"}','{"s":"JAX","l":"ジャクソンビル, FL, アメリカ合衆国"}','{"s":"MCI","l":"カンザスシティ, MO, アメリカ合衆国"}','{"s":"LAS","l":"ラスベガス, NV, アメリカ合衆国"}','{"s":"LAX","l":"ロサンゼルス, CA, アメリカ合衆国"}','{"s":"MFE","l":"マッカレン, TX, アメリカ合衆国"}','{"s":"MEM","l":"メンフィス, TN, アメリカ合衆国"}','{"s":"MEX","l":"メキシコシティ, メキシコ"}','{"s":"MIA","l":"マイアミ, FL, アメリカ合衆国"}','{"s":"MSP","l":"ミネアポリス, MN, アメリカ合衆国"}','{"s":"MGM","l":"モンゴメリー, AL, アメリカ合衆国"}','{"s":"YUL","l":"モントリオール, QC, カナダ"}','{"s":"BNA","l":"ナッシュビル, TN, アメリカ合衆国"}','{"s":"EWR","l":"ニューアーク, NJ, アメリカ合衆国"}','{"s":"ORF","l":"ノーフォーク, VA, アメリカ合衆国"}','{"s":"OMA","l":"オマハ, NE, アメリカ合衆国"}','{"s":"PHL","l":"フィラデルフィア, アメリカ合衆国"}','{"s":"PHX","l":"フェニックス, AZ, アメリカ合衆国"}','{"s":"PIT","l":"ピッツバーグ, PA, アメリカ合衆国"}','{"s":"PAP","l":"ポルトープランス, ハイチ"}','{"s":"PDX","l":"ポートランド, OR, アメリカ合衆国"}','{"s":"QRO","l":"ケレタロ, MX, メキシコ"}','{"s":"RIC","l":"リッチモンド, バージニア"}','{"s":"SMF","l":"サクラメント, CA, アメリカ合衆国"}','{"s":"SLC","l":"ソルトレイクシティ, UT, アメリカ合衆国"}','{"s":"SAN","l":"サンディエゴ, CA, アメリカ合衆国"}','{"s":"SJC","l":"サンノゼ, CA, アメリカ合衆国"}','{"s":"YXE","l":"サスカトゥーン, SK, カナダ"}','{"s":"SEA","l":"シアトル, WA, アメリカ合衆国"}','{"s":"STL","l":"セントルイス, MO, アメリカ合衆国"}','{"s":"TPA","l":"タンパ, FL, アメリカ合衆国"}','{"s":"YYZ","l":"トロント, ON, カナダ"}','{"s":"YVR","l":"バンクーバー, BC, カナダ"}','{"s":"TLH","l":"タラハシー, FL, アメリカ合衆国"}','{"s":"YWG","l":"ウィニペグ, MB, カナダ"}','{"s":"ADL","l":"アデレード, SA, オーストラリア"}','{"s":"AKL","l":"オークランド, ニュージーランド"}','{"s":"BNE","l":"ブリスベン, QLD, オーストラリア"}','{"s":"MEL","l":"メルボルン, VIC, オーストラリア"}','{"s":"NOU","l":"ヌーメア, ニューカレドニア"}','{"s":"PER","l":"パース, WA, オーストラリア"}','{"s":"SYD","l":"シドニー, NSW, オーストラリア"}'];let area = data.split("colo=")[1].split("\n")[0];for (var i = 0; i < areas.length; i++) {const as = JSON.parse(areas[i]);if (as.s == area) {document.getElementById("cdn").innerHTML = as.l;break;}}}}));
<script></script>
内に入れるか、ファイルとして参照することができます。
ノード情報の表示#
ノード情報を表示したい場所に<span id="cdn"></span>
を追加するだけです。
効果はこのブログの下に見えます⬇️