Docker×Laravelでアクセス元のIPアドレスを取得する方法
- 2020.05.25
- php備忘録
- Amazon, Docker, Laravel, MWS, PHP, アクセスログ, アクセス元IPアドレス, スクリプト備忘録, 不正アクセス防止, 商品情報, 自動化
目次
Docker×Laravelでアクセス元のIPアドレスを取得する方法
久しぶりにアクセスログを確認してみたら想定と違う動きがありました。
アクセスしてきたIPがみんな同じ(1件だけ何故か違いますが…)。
このIP:172.22.0.1 はDockerコンテナのIPです。
AmazonのMWSではシステムに対してアクセスしてきたIPを取得して適正に処理(不正アクセスのログインを拒否)するようにとの指示がありますが、この状態では要請に対して満足な結果を返すことはできません。
AmazonMWSの取得で実装しなくてはいけない仕様
アクセスIPに係る項目では大きく2つあります。
- アクセスログを取得する事
- 不正アクセスIPに対してアクセス禁止処理等適正な処理を実行する仕組みがある事
この方針に則り、私の場合は次のような仕組みを構築しています。
- アクセスログにIPとアクセスURLを保存する
- 不正アクセスを実行したIPと不正アクセスURLをDBに蓄積
- 不正アクセスURLにアクセスしたIPを記録
詳細はこちらの記事に残しているので興味ある方はどうぞ。
logに記載したIPがDockerのIPになってしまってはMWSの求める要件を満たせません。
と言う事で、Access元のIPを取得する方法について調べて実装してみました。
Access元IPは $_SERVER[‘HTTP_X_FORWARDED_FOR’] で取得できる
意外とあっさり。
$request->ip(); とか Request::ip(); とかで取得していたパーツを下記コードに切り替えます。
$_SERVER[‘HTTP_X_FORWARDED_FOR’]
参考サイトはこちら
http://tech-blog.tsukaby.com/archives/1464
https://github.com/tsukaby/tsukaby-tech-blog-docker/commit/1e15c63537d3e78604b1e154c08a1cfdd1feea08
まとめ
同じ悩みを持った方がやっぱり居たんですね。
そういう方のブログ、とてもありがたいです。おかげであっさりと解決できました。
このブログもそんな役に立っていれば嬉しいですね。
-
前の記事
自然言語処理(NLP)を実装したくてLaravel×Python連携をしたがNLPが現実的ではないらしい 2020.05.25
-
次の記事
キーワード評価を調査できる4サイトVer.2020 2020.05.27
コメントを残す