使用Adobe Air 2获取IP地址

时间:2010-07-03 06:48:13

标签: air actionscript-3

我正在使用AS3在Adobe Air 2中构建应用程序,并且需要获取用户的IP地址。根据我的理解,这段代码应该可以工作但是跟踪:“:: 1”而不是ip。谢谢。

var netInterfaces = NetworkInfo.networkInfo.findInterfaces();

var addresses = netInterfaces[0].addresses;

var userIp = addresses[0].address;

trace(userIp);

3 个答案:

答案 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);           
      }
    }
  }
}