我正在构建一个镀铬应用程序并创建了一个UDP套接字通过镀铬插座 API.
有没有办法找回自己的IP地址不使用外部服务?
我所说的“自己的 IP 地址”是什么意思:两者client and server位于同一网络上。这镀铬应用程序需要回答一个UDP广播与它自己的本地IP地址.
实际上有一个镀铬插座API正是针对该用例。但不幸的是我只收到以下回调对象:Object {paused: false, persistent: false, socketId: 17}
,它错过了localAddress
属性。它是一个(选修的)属性中的SocketInfo
对象根据文档。这本质上是我正在运行的代码:
chrome.sockets.udp.create({}, function(socketInfo){
chrome.sockets.udp.getInfo(socketInfo.socketId, function (detailedInfo){
ipAddress = detailedInfo.localAddress;
console.debug(detailedInfo); // containts no `localAddress`
});
});
我也不认为我错过了任何清单权限因为没有在中描述特殊权限API文档。这就是我使用的:
"sockets": {
"udp": {
"send": "*",
"bind": "*"
}
}
当我使用Python我可以通过以下方式实现该目标:
import socket
ip_address = socket.gethostbyname(socket.gethostname())
任何帮助都会很棒!