我正在使用AS3在Adobe Air 2中构建应用程序,并且需要获取用户的IP地址。根据我的理解,这段代码应该可以工作但是跟踪:“:: 1”而不是ip。谢谢。
var netInterfaces = NetworkInfo.networkInfo.findInterfaces();
var addresses = netInterfaces[0].addresses;
var userIp = addresses[0].address;
trace(userIp);
答案 0 :(得分:6)
如果您想要真正的IP而不是本地主机,请使用:
private function getIp():String{
var netInterfaces:Vector.<NetworkInterface> = NetworkInfo.networkInfo.findInterfaces();
var addresses:Vector.<InterfaceAddress> = netInterfaces[1].addresses;
return addresses[0].address;
}
如果您使用的是Android,请不要忘记设置权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
答案 1 :(得分:0)
您编写的代码实际上会返回它找到的第一个网络接口的IP地址。 在您的情况下,这是所谓的环回设备,用于本地连接
使用IP4,ip地址为127.0.0.1
使用IP6,ip-adress是:: 1
答案 2 :(得分:0)
试试这个
var netInterfaces:Vector.<NetworkInterface> = NetworkInfo.networkInfo.findInterfaces();
if (netInterfaces && netInterfaces.length > 0) {
for each (var i:NetworkInterface in netInterfaces) {
if (i.active) {
var addresses:Vector.<InterfaceAddress> =i.addresses;
for each (var j:InterfaceAddress in addresses) {
trace("- Host : " + j.address);
}
}
}
}