LoginSignup
4
4

More than 5 years have passed since last update.

GAE/GoでグローバルIP表示

Last updated at Posted at 2014-01-13

今回はGo言語でこんな感じの置いて対応しました。
単にチュートリアルのHello, Worldの出力をhttp.Request.RemoteAddrに変えただけですが…(笑

echo-ip.go
package echo_ip

import (
    "fmt"
    "net/http"
)

func init() {
    http.HandleFunc("/", handler)
}

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, r.RemoteAddr)
}

これをテキトウなディレクトリにテキトウなファイル名でapp.yamlと一緒に置いて、goapp deployするだけでOKです。

一応、app.yamlもそのままです…(性善説を信じよう)

app.yaml
application: echo-ip
version: 1
runtime: go
api_version: go1

handlers:
- url: /.*
  script: _go_app

例えば、MacでSDKのインストールディレクトリが、~/go_appengine とすると、こんな感じでOKです。

$ mkdir -p ~/go_apps/echo-ip
$ nano ~/go_apps/echo-ip/echo-ip.go
$ nano ~/go_apps/echo-ip/app.yaml
$ ~/go_appengine/goapp deploy ~/goapps/echo-ip

GAE/Py版は他の方がサンプル公開されているみたいです。
Google App EngineでグローバルIP表示
GOOGLE APP ENGINE で WAN 側 IP アドレスを取得

DDNSサービスを利用しているとグローバルIPはちょこちょこチェックしないといけないわけですが、今まで下記サービスを利用させて頂いていました。

curlで毎時0分にリクエストしていたら、大半がタイムアウトするようになってきたのでAppEngineに同様のものを置く事にしました。
別環境で0時5分から4時間おきに動かしている方は全く問題ないので、皆が0分に集中させているのがマズいのかなと。

他にも下記は知っているのですが、同じ事が起こる可能性があるので…
http://ifconfig.me/ip
http://dyn.value-domain.com/cgi-bin/dyn.fcg?ip

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4