それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

IPアドレスから地域判定するgeoipをipinfoで実現する。香川県判定

ipinfo というサービスがありまして。

ここに、リクエストを投げると、JSONで位置情報をくれる。

curl ipinfo.io
$ curl https://ipinfo.io/json

{
  "ip": "49.105.999.999",
  "hostname": "mo49-105-999-99999.fix.mopera.net",
  "city": "Tokyo",
  "region": "Tokyo",
  "country": "JP",
  "loc": "35.6910,139.7679",
  "org": "AS9605 NTT DOCOMO, INC.",
  "postal": "101-0047",
  "timezone": "Asia/Tokyo",
  "readme": "https://ipinfo.io/missingauth"
}

/json にリクエストを投げるとリクエスト元のIPアドレスで情報が返ってくる。

指定したIPの都道府県情報を得る

GETのPATHにIPアドレスを含めることで指定したIPアドレスの地域情報を得ることができる。

curl https://ipinfo.io/49.111.111.XXX/json

指定したIPが香川県かどうか調べる

そうです。地域判定が必要なのは、香川です。kagawa を判定しないといけません。

[[ $( curl https://ipinfo.io/49.111.111.111 | jq .region ) == 'kagawa' ]]

nginx と組み合わせます。

nginx に cookie アクセス制限を取り付けて、cookie未発行なら、香川チェックを受けてもらいます。

https://takuya-1st.hatenablog.jp/entry/2018/05/08/182127