Google App Engine Go でユーザー IP アドレスを取得して ReCAPTCHA 検証を行う
reCAPTCHA を GAE Go Web アプリケーションに統合するには、ユーザーの IP アドレスを取得する必要があります検証目的のため。この記事では、ReCAPTCHA の統合を容易にするために、フォーム投稿からユーザーの IP アドレスを取得する方法について説明します。
ユーザーの IP アドレスを取得する鍵は、net.SplitHostPort 関数を使用することにあります。この関数は r.RemoteAddr 変数を受け取り、受信リクエストのリモート アドレスを取得し、それをホスト コンポーネントとポート コンポーネントに分割します。結果の IP アドレスは ip 変数に保存されます。
これを Go コードに実装する方法の例を次に示します。
<code class="go">package main import ( "log" "net" "os" "github.com/go-martini/martini" ) func main() { m := martini.Classic() m.Post("/verify", func(w http.ResponseWriter, r *http.Request) { ip, _, _ := net.SplitHostPort(r.RemoteAddr) log.Printf("User IP address: %s", ip) }) port := os.Getenv("PORT") if port == "" { port = "8080" log.Printf("Defaulting to port %s", port) } m.RunOnAddr(":" + port) }</code>
このアプローチを実装すると、ユーザーの IP アドレスを効果的に取得できます。 IP アドレスを取得し、GAE Go Web アプリケーションでの ReCAPTCHA 検証にそれを利用します。
以上がGoogle App Engine Go で ReCAPTCHA 検証のためにユーザーの IP アドレスを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。