##経緯
業務でCircleCIを導入することになりました。
ただ、EC2にIPアドレス制限をかけていたため、
ホワイトリストにIPアドレスを追加する必要があります。
1.サーバーから現在のグローバルIPを確認
2.CircleCIからEC2のセキュリティグループにグローバルIPを追加
3.SSHで接続
一連の動作の実装が完了したところで再度実行。
なぜかグローバルIPが取得できず動かない...
グローバルIPの取得方法
curl ifconfig.me
確認したところ、ifconfig.meのサーバーが落ちていました。
グローバルIPはサーバーが持っていない情報です。
そのため、サーバーが自分のグローバルIPを確認するには、他のウェブサイトから確認してもらい、その値を返してもらう必要があります。
今回は、ifconfig.meというサイトに確認してもらうようプログラムを組んでいましたが、ifconfig.meのサーバー自体が落ちていました。
「グローバルIPを確認する方法」で調べると、
curl ifconfig.me
で調べられるという記事がいくつも出てきましたが、ifconfig.meというサイトの運営元はどこで、どの程度の信頼性があるかは確認できませんでした。
他サイトに頼るコマンドを書くのであれば、そのサイトが安全だとある程度保証されている必要があるでしょう。
なので今回グローバルIPを返してくれるサイトをいくつか調べてみました。
そもそも、固定IPアドレスを設定できるのであれば、そのようにすべきでしょう。
ただ、今回はCircleCIで動かすため、CircleCIのIPアドレスは固定できません。
なのでより安全、安心なサイトを選び、より確実にグローバルIPアドレスを確認できる方法を検討しました。
サイト一覧
グローバルIPアドレスを返してくれるサイトは以下です。
###【URL】http://inet-ip.info/
【運営元】不明
【備考】
GitHub上でソースコードが公開されている。(2021/05現在スター5つ)
https://github.com/masahide/inet-ip.info
【使用方法】
curl http://inet-ip.info/
###【URL】http://globalip.me/
【運営元】不明
【使用方法】
curl http://globalip.me/
###【URL】http://api.ipify.org/
【運営元】https://www.ipify.org/
【備考】
GitHub上でソースコードが公開されている。(2021/05現在スター1.1k)
https://github.com/rdegges/ipify-api
【使用方法】
curl http://api.ipify.org/
###【URL】https://ipinfo.io/ip
【運営元】https://ipinfo.io/about
【備考】
一ヶ月あたり200億のAPIリクエストがある。
10万人以上の開発者、事業者が使っている。
毎秒1万以上のリクエストがサーバーに来ている。
【使用方法】
curl https://ipinfo.io/ip
###【サイトURL】https://ipecho.net/plain
【運営元】https://ipecho.net
【使用方法】
curl https://ipecho.net/plain
###【URL】ident.me
【運営元】https://api.ident.me/
【備考】
一度目の実行結果と2度目の実行結果が違う...
(*には数字が入っていました。念の為ボカした。)
$ curl ident.me
121.103.***.**%
$ curl ident.me
240b:11:ac1:b300:**ff:***d:*fed:f**d%
###【URL】https://ifconfig.me
【運営元】不明
【使用方法】
curl https://ifconfig.me
###【URL】http://ipconfig.io/
【運営元】不明
【備考】
GitHub上でソースコードが公開されている。(2021/05現在スター3k)
https://github.com/mpolden/echoip
【使用方法】
curl http://ipconfig.io/
###【URL】https://domains.google.com/checkip
【運営元】https://domains.google.com
【備考】
Googleが運営している。
【使用方法】
curl https://domains.google.com/checkip
###【URL】https://checkip.amazonaws.com
【運営元】https://aws.amazon.com/
【備考】
Amazonが運営している。
【使用方法】
curl https://checkip.amazonaws.com
###【URL】ipaddr.show
【運営元】不明
【使用方法】
curl ipaddr.show
###【URL】http://httpbin.org/ip
【運営元】http://httpbin.org
【備考】
GitHub上でソースコードが公開されている。(2021/05現在スター9.8k)
https://github.com/postmanlabs/httpbin
返り値はJSON形式
【使用方法】
curl http://httpbin.org/ip
###【URL】http://ipaddr.ga/
【運営元】不明
【使用方法】
curl http://ipaddr.ga/
結論
1.GitHubでOSSとして公開されている。
2.有名な企業が運営している。
いずれかの条件を満たしていればある程度信頼できそうですね。