我使用下面的 API 代码来查找给定域的 IP 地址:
func IPFinder(c *gin.Context) {
var domain models.Domain
c.BindJSON(&domain)
addr, err := net.LookupIP(domain.DomainName)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
} else {
c.JSON(http.StatusOK, gin.H{"ip_address": addr})
}
return
}
Run Code Online (Sandbox Code Playgroud)
对于以下请求:
{
"domain_name": "google.com"
}
Run Code Online (Sandbox Code Playgroud)
得到的响应为:
{
"ip_address": [
"2404:6800:4002:80a::200e",
"172.217.167.46"
]
}
Run Code Online (Sandbox Code Playgroud)
此处,此 LookupIP 方法给出包含该域的 ipv4 和 ipv6 地址的切片。GoLang 中是否有其他任何其他第 3 方库,使用它我可以获得仅包含 IP 地址的输出,如下所示:
{
"ip_address": "172.217.167.46"
}
Run Code Online (Sandbox Code Playgroud)
Sar*_*van 14
如果您只对 IPv4 地址感兴趣,可以这样获取:
package main
import (
"fmt"
"net"
)
func main(){
ips, _ := net.LookupIP("google.com")
for _, ip := range ips {
if ipv4 := ip.To4(); ipv4 != nil {
fmt.Println("IPv4: ", ipv4)
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7133 次 |
| 最近记录: |