在開發網路應用程式時,取得請求IP位址是一個非常常見的需求。而在 Golang 中,取得請求 IP 位址也是非常簡單的。
在 Golang 中,我們可以使用net/http
套件下的Request
結構體來取得請求 IP 位址。具體來說,我們可以透過Request
結構體中的RemoteAddr
屬性來取得請求 IP 位址。
下面是一個簡單的範例程序,示範如何使用Golang 取得請求IP 位址:
package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { ip := r.RemoteAddr fmt.Printf("Request from IP address: %s ", ip) fmt.Fprintf(w, "Request from IP address: %s ", ip) }) http.ListenAndServe(":8080", nil) }
在上面的範例程式中,我們使用http.HandleFunc
函數將一個路由處理函數綁定到根路徑。在路由處理函數中,我們透過r.RemoteAddr
來取得請求 IP 位址,並將其列印到控制台和回應內容中。最後,我們透過http.ListenAndServe
函數啟動 HTTP 伺服器,並監聽在連接埠 8080 上。
當我們存取該伺服器時,控制台會輸出類似如下的資訊:
Request from IP address: 127.0.0.1:58226
上述輸出表示我們的請求來自 IP 位址為 127.0.0.1,連接埠為 58226 的用戶端。
然而需要注意的是,Request.RemoteAddr
取得到的 IP 位址可能不是客戶端的真實 IP 位址,特別是在使用了反向代理等情況下。在這種情況下,應該使用其他方法來取得客戶端的真實 IP 位址,例如根據自訂請求頭取得。
以上是golang獲取請求ip的詳細內容。更多資訊請關注PHP中文網其他相關文章!