IPで国別にアクセス制限をかけるには
IPで制限をかけるにはどの国がどのIP、IPレンジを使用しているか知る必要が出て来ます。その情報はここから簡単に取得することができます。
ここからcsvをダウンロードしてアクセスのあったipを取得して照合することでどの国からアクセスが来ているか判別することができます。
問題点
しかし、ここで問題なのが、IPアドレスはかなりの頻度でいろんな国に再割り当てされるので取得したCSVを常に最新に保って置かないといけません。
この更新を自動で自分で作るが面倒ですし、サービスの規模によっては世界中の国のアドレスを管理しないといけなくなるのでかなりめんどくさくなります。
IPアドレスとIPレンジを照合する実装は下の記事にまとめているので自分で構築したい人は参照して見てください。
無償版
ip-api.com
ip-api.comは無償ですぐに使い始められるので個人サービスでとりあえず試してみたいなという人はこれで十分かと思います。
これだけで簡単に取得できます。APIの制限は150 req/minなので小さいサービスだったら全く問題ないですね。
有償版もあるみたいですが、試してないのと、サイトの感じからプロダクション環境で使うのはちょっとなという感じなので使ってません。
$ curl http://ip-api.com/json/208.80.152.201 { "as": "AS14907 Wikimedia Foundation, Inc.", "city": "San Francisco (South Beach)", "country": "United States", "countryCode": "US", "isp": "Wikimedia Foundation, Inc.", "lat": 37.787, "lon": -122.4, "org": "Wikimedia Foundation, Inc.", "query": "208.80.152.201", "region": "", "regionName": "California", "status": "success", "timezone": "America/Los_Angeles", "zip": "94105" }
有償版
db-ip.com
プロダクション環境でしっかり使うならこのサービスの有償版がいいかと思います。
サイトとドキュメントがしっかりしており、実際に使用している企業も世界中の大手が使用しているので安心感があります。

また使い始めてみると管理画面が非常にわかりやすく、使用限度に近いづいたらアラートメールを送信してくれる昨日もあるのが非常によかったです。
これほどのサービスを最安で月額2000円程度で利用できるので、必要になった場合はこのサービスを強くおすすめします。
おまけ情報
IP制限をかけ始めると誰々はアクセスできるけど、誰々はアクセスできない、このビルはアクセスできるようにして、あっちのビルはアクセスできないようにしたい、みたいな要望も増えて来ます。
こうなった時便利なのがマイIPというサービスです。どこにいても同じIPからアクセスできるようになるのでそのIPだけアクセスを許可してしまえば煩雑なアクセス制限をしなくていいようになります。
これは海外からでもどこからでも使えるので非常に便利です。前職のサイバーエージェントでもかなり使っていました。
素晴らしいのが、申し込みからわずか3分で使用できるようになりますし、最初の2ヶ月無料、月々わずか1000円程度で利用可能です。
もし、アクセス制限で困った場合はマイIPを使って固定されたIPに対してアクセス制限をかけることをおすすめします。
髙妻智一
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25
コメントを残す