自分のグローバルIPアドレスを調べる方法

自分用メモ。インターネット接続プロバイダによって自分に割り振られているIPアドレスを調べる方法。

外部のどこかにアクセスして、そこが接続してきた元のIPアドレスを返してくれる、というサービスを利用するしかない。

次のものはコマンド一発でIPアドレスのみを返してくれるので、スクリプトに組み込むのに便利。

dig whoami.akamai.net @ns1-1.akamaitech.net +short

サーバーを指定しないで試しているとき、たまに間違ったIPアドレスを返してきた。キャッシュされていたものだろうか。サーバーを指定すると、いまのところ常に正しい値が得られている。

HTTP でも同様のものがあって、curl を使って

curl -s http://whatismyip.akamai.com

こちらはIPv6もあるらしく(いま自分では試せない)

curl -s http://ipv6.whatismyip.akamai.com/

Spamhaus に登録されていないか自動で定期的にチェックする方法

メールサーバーを自前で運用しています。その IP アドレスがときどき Spamhaus のリストに載ってしまうことがあります。もちろんこの自前サーバーは Spam 発信源ではありません。

Spamhaus の Blocklist Removal Center にアクセスして確認できます。どうやら自分の IP アドレスを含む xxx.xxx.xxx.xxx/15 が一網打尽にされてしまったようでした。リストから削除してもらうには、そのページから所定の手続きを踏みます。

が、はじめにリストに載ってしまったかどうか気づくのが難しいのです。メールを出しているつもりが相手に届かないという状況はなかなか気づけません(電話をかけて、自分の耳元では「プルルル…」と鳴っているのに実はどこにも繋がっていない状況を想像してみてください。ふつうは、単に相手が出ないとか相手の機器に問題があるとか、とにかく受け手に何か問題があるのだと思い、まさか呼び出してさえいないとは思わないでしょう)。相手先のサーバーからエラーメッセージでも返ってくればまだましなのですが、黙って無視するだけという場合もよくあります。今回はメール以外でもよく連絡をとっている相手に、たまたま別の手段で連絡をとった際に発覚しました。

広範囲のリスト掲載の巻き添えを食らうのは 10年ほどのあいだに2,3回という頻度なので、まさに忘れた頃にやってくるという感じです。上述の Blocklist Removal Center にアクセスして確認すればいいのですが、そうしょっちゅうもやっていられません。

自動的・定期的にチェックする方法はないかと探してみたら、FAQ に How do I check my DNS server results? というのがありました。

自分の IP アドレスがたとえば 203.0.113.50 だとしたら、それを逆さまにして .zen.spamhaus.org を付け足したものを DNS で検索します。

dig +short 50.113.0.203.zen.spamhaus.org

何も返事がなければ、リストに載っていません。

もし 127.0.*.* の返事があれば、リストに載っています(その意味は FAQ の What do the 127.*.*.* Return Codes mean? を参照のこと)。

というわけで、この1行を cron で定期的に実行して様子を見ることにしました。

DoSPOT 設置をあきらめる

ずっとデスクトップ PC の前に座っている生活なので無線 LAN はあまり考えていませんでしたが、最近 Nexus7 を手に入れたので、これまた数年前に入手していた無線 LAN ルーター WN-G300DGR を置いて使ってみていました。まあ特に支障はありません。

そこへ「DoSPOT」の営業の電話がかかってきました。DoSPOT というのは、客側から見ると、時間・回数制限付きの公衆無線アクセスポイントということになります。また、「フレッツ・スポット」のユーザーなら制限なしに利用できます。設置側としては、「Wi-Fi 使えます」と言えますし、「フレッツ・スポット」提供エリアとしてそのページに掲載されるという宣伝効果? が期待できます。またオーナー側に SSID (一般客には公開しない) があり、既存の無線 LAN ルーターに置き換えることができるかなと思えました。月額500円(税抜)ですが、1年間は無料というのでとりあえず OK しました。

LAN 環境

ところで現在の LAN 環境は、LAN 内部に公開サーバーを置いていたり、ネットワーク接続のプリンターがあったりという、単に外につなげればいいというだけではなくそもそも単純ではない状態です。したがって内部向けの DNS サーバーが存在し、これを参照するようにしないと自分のところの Web を内部から見ることができません。

DoSPOT ルーター

しばらくして、担当者が DoSPOT ルーターを持って「工事」にやってきました。が、設置場所の問題だの既存の無線 LAN ルーターを外したりだのややこしかったので、「設置はこちらでやるから」と言って機械だけ置いていってもらいました。DoSPOT ルーターは NEC 製 の MW-3301-R (PDF) というものでした。

さて自分で設置して設定しようとすると、MW-3301-R が上述の LAN 環境に対応できないことが判明しました。

有線 LAN ポートが足りない

まず MW-3301-R には有線 LAN ポートが2口しかありません。一方、既存の無線 LAN ルーターには3口あって、宅内にはそれを全部塞ぐだけの機器があります。増設ならともかく置き換えることはできません。すると今度は(設置場所に)電源の口が足りません。

DNSの設定ができない

MW-3301-R の設定は、それに接続した PC などのブラウザで Web 画面をとおして行います。と言っても設定を変更できるのは、オーナー向け SSID (デフォルトでは「DoSPOT-OWNER」)についてのみ。それについては DNS の設定もできるので、プライマリに内部向け DNS サーバー、セカンダリにゲートウェイ(プロバイダの DNS を代理している)を設定することで事なきを得ました。

ところが、客側が接続する SSID (「DoSPOT-FREE」や「NTTWEST-SPOT」)に関する設定は一切できないようです。DoSPOT カスタマーセンターに電話して聞いてみたところ、はじめは DNS について「オーナー向け設定と連動しているかも」との回答だったのですが、とてもそのような挙動には見えないので強くそのように言うと、数時間後に「再現テストしてみたところ連動しておらず、それらは一切設定変更できません」との回答がありました。

DoSPOT の売り文句

Point 3 店舗や施設の情報をお客様に見てもらえる

  • Wi-Fiを利用する際に店舗ホームページを表示できる
  • 店舗や施設のホームページを紹介

    お客様がDoSPOTを利用される際に店舗や施設のホームページを紹介します。

    同じことを客側から

    Point 3 店舗や施設の情報を確認できる

    • 店舗情報、クーポン、ブログなどをチェック。
    Wi-Fiを利用する際に店舗ホームページで情報をゲット!

    無料ログインの際に、店舗ホームページがある場合は表示されますので、店舗情報やクーポンのチェック、ブログなどが閲覧可能です。

    とあるのですが、これがまったく使えないということになります。

    そのほか残念なところ

    時刻の設定が、再起動のたびに元(1970年1月1日)に戻ってしまうようです。と言ってもログにもこの時刻は使われていません。何なんだろう。

    「DoDPOT-FREE」は暗号なし。うーん、そうなんだ……。

    結局使わないことに

    DoSPOT がまったくダメとは言いません。うちの環境に合わなかったというだけです。有線 LAN のポート数は事前に知ろうと思えば知ることはできました。それを見落としていたのはこちらの落ち度でした。DNS の設定については、実際に試してみるまでわかりませんでした。その手段がまったくないとは思っていませんでした。

    既存の無線 LAN ルーターかまたはそれよりちょっとだけましな、マルチ SSID のできる機器で、ひとつの SSID を自分で客用に設定してやればすむ話です。宣伝効果? は、FREESPOT マップ にでも登録すればいいかもしれません。そもそも Wi-Fi 環境うんぬんで客足に影響するような商売でもありませんし。いずれにせよ無料だからまだいいようなものの、月額料金、電気代(これは微々たるものか)を払って、こちらに何の得があるというのでしょう (いや、そういう形態の商売もあるでしょうが)。しばらく放置して、無料期間が終わるまでに解約することにしようと思います。やれやれ。

    WordPress でping/トラックバックを送信できない

    サーバーの移転以来、トラックバックができていないようだと思いながらも、あまり記事を書いていなかったので確信を持てずにいました。思い当たる設定をいくつか直してみたのですが、やはり出ていっていませんでした。

    検索してみると実にたくさん引っかかりましたが、どうやら

    1. wp-include/cron.php の wp_remote_post() の設定時間を長くする
    2. Smart Update Pinger プラグインを使う[1]
    3. /etc/hosts の 127.0.0.1 にホスト名を加える

    の 3 つの解決策に分類されるようです。

    まず (1) をやってみましたが、ここでは何も起きず、(2) をやってみると「更新情報サービス」に設定してたところには ping を送信できましたが、トラックバックは別でした。

    結局「移転以来」というのが鍵でした。移転というのはいわゆる「自宅サーバー」になった訳ですが、そこに問題がありました。

    「自宅サーバー」というのは、つまりルーターの内側にあって、NAT により外側に見えるグローバル IP アドレスと、内側(自分自身を含む)から見えるプライベート IP アドレスが異なっている状態にあるということです。外向きの DNS は立てていたのですが、自分自身 (つまり pasero.net) を 127.0.0.1 や 192.168.x.x と引けなくてもこれまで特に問題はありませんでした (それはそれで驚き)。

    「トラックバック」の仕組み上、これではいけないのですね。ひとつの解決策が (3) のように、/etc/hosts で WordPress のあるホスト名を 127.0.0.1 に対応させる方法です。ここでは、VIEWによるスプリットDNSという方法で、内向きの DNS を設定して解決しました。

    1. 後継のUltimate Plugins Smart Update Pinger というものがあるようです。