我們如何在golang獲得公共IP?方法req.Header.Get("X-Forwarded-For")
返回IP數組。我們如何識別哪一個是公開的,哪一個是內部的?是否有任何其他方法來獲取公共(外部)IP?在Golang獲取公共IP
0
A
回答
6
以下IP塊保留給專用IP地址。
Class Starting IPAddress Ending IP Address # of Hosts
A 10.0.0.0 10.255.255.255 16,777,216
B 172.16.0.0 172.31.255.255 1,048,576
C 192.168.0.0 192.168.255.255 65,536
Link-local-u 169.254.0.0 169.254.255.255 65,536
Link-local-m 224.0.0.0 224.0.0.255 256
Local 127.0.0.0 127.255.255.255 16777216
你可以寫檢查,如果IP來在這些
這裏的功能是試圖做同樣的,下面的代碼不處理的IPv6如有需要,請添加
func IsPublicIP(IP net.IP) bool {
if IP.IsLoopback() || IP.IsLinkLocalMulticast() || IP.IsLinkLocalUnicast() {
return false
}
if ip4 := IP.To4(); ip4 != nil {
switch true {
case ip4[0] == 10:
return false
case ip4[0] == 172 && ip4[1] >= 16 && ip4[1] <= 31:
return false
case ip4[0] == 192 && ip4[1] == 168:
return false
default:
return true
}
}
return false
}
這裏是玩link
0
掃描列表並確定它們是否爲private_IPv4或private_IPV6。
如果他們不是,那麼他們是公開的。
0
你可以用它這裏瞭解公共IP enter link description here
1
我用來找出公共IP下面的代碼:
//function to get the public ip address
func GetOutboundIP() string {
conn, err := net.Dial("udp", "8.8.8.8:80")
HandleError("net.Dial: ",err)
defer conn.Close()
localAddr := conn.LocalAddr().String()
idx := strings.LastIndex(localAddr, ":")
return localAddr[0:idx]
}
相關問題
- 1. 遠程獲取公共IP
- 2. 在javascript中獲取公共ip地址
- 3. 通過API獲取我的公共IP
- 4. 獲取路由器的公共ip
- 5. 如何獲得公共IP
- 6. 什麼是AWS公共IP限制? (公共IP不彈性IP)
- 7. 如何在公共IP
- 8. 如何在php中獲取客戶端的公共ip
- 9. 如何在python中獲取當前ec2實例的公共ip?
- 10. 在當前EC2實例上獲取公共IP地址
- 11. 使用公共IP
- 12. 公共IP地址
- 13. PHP - 獲取公網IP
- 14. 我想獲得公共IP,但apache2獲得私人IP
- 15. AWS Cloud Formation - 如何獲取公共ip地址的ec2實例
- 16. 通過XirSys獲取我的公共IP地址請求
- 17. 通過公共IP訪問亞馬遜EC2獲取超時
- 18. 如何從XMPP綁定消息獲取我的公共IP?
- 19. 從部署的應用程序獲取Azure公共IP地址
- 20. 使用scala獲取當前機器的公共IP地址
- 21. 如何從kubernetes中的容器獲取公共IP
- 22. 如何使用Azure SDK獲取Azure VM的公共IP
- 23. 爲您的計算機或網絡獲取公共IP
- 24. 獲取公共領域?
- 25. 發現公共IP編程
- 26. 是公共IP地址嗎?
- 27. Cassandra公共IP不連接
- 28. 未能管理公共IP
- 29. DevOps,DNS和公共IP
- 30. 在bash腳本中使用公共ip
謝謝你,它是非常有益的。 – Shubhra