使用AdobeAir2获取IP地址
我正在用AS3在AdobeAir2中构建一个应用程序,需要获取用户的ip地址。据我所知,这段代码应该可以工作,但正在跟踪:“::1”不是ip。多谢各位使用AdobeAir2获取IP地址,air,actionscript-3,Air,Actionscript 3,我正在用AS3在AdobeAir2中构建一个应用程序,需要获取用户的ip地址。据我所知,这段代码应该可以工作,但正在跟踪:“::1”不是ip。多谢各位 var netInterfaces = NetworkInfo.networkInfo.findInterfaces(); var addresses = netInterfaces[0].addresses; var userIp = addresses[0].address; trace(userIp); 您编写的代码实际上返回它找到
var netInterfaces = NetworkInfo.networkInfo.findInterfaces();
var addresses = netInterfaces[0].addresses;
var userIp = addresses[0].address;
trace(userIp);
您编写的代码实际上返回它找到的第一个网络接口的ip地址。 在您的情况下,这就是所谓的用于本地连接的环回设备 IP4的ip地址为127.0.0.1
对于IP6,ip地址是::1您编写的代码实际上返回它找到的第一个网络接口的ip地址。 在您的情况下,这就是所谓的用于本地连接的环回设备 IP4的ip地址为127.0.0.1
使用IP6时,ip地址为::1如果您想要的是真实的ip而不是本地主机,请使用以下地址:
private function getIp():String{
var netInterfaces:Vector.<NetworkInterface> = NetworkInfo.networkInfo.findInterfaces();
var addresses:Vector.<InterfaceAddress> = netInterfaces[1].addresses;
return addresses[0].address;
}
私有函数getIp():字符串{
var netInterfaces:Vector.=NetworkInfo.NetworkInfo.findInterfaces();
变量地址:Vector.=netInterfaces[1]。地址;
返回地址[0]。地址;
}
如果您使用的是Android,请不要忘记设置权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
如果您想要的是真实的IP而不是本地主机,请使用以下命令:
private function getIp():String{
var netInterfaces:Vector.<NetworkInterface> = NetworkInfo.networkInfo.findInterfaces();
var addresses:Vector.<InterfaceAddress> = netInterfaces[1].addresses;
return addresses[0].address;
}
私有函数getIp():字符串{
var netInterfaces:Vector.=NetworkInfo.NetworkInfo.findInterfaces();
变量地址:Vector.=netInterfaces[1]。地址;
返回地址[0]。地址;
}
如果您使用的是Android,请不要忘记设置权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
试试这个
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);
}
}
}
}
var netInterfaces:Vector.=NetworkInfo.NetworkInfo.findInterfaces();
如果(netInterfaces&&netInterfaces.length>0){
每个(变量i:网络接口中的网络接口){
如果(i.active){
变量地址:向量=i地址;
每个(变量j:地址中的接口地址){
跟踪(“-Host:+j.address”);
}
}
}
}
试试这个
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);
}
}
}
}
var netInterfaces:Vector.=NetworkInfo.NetworkInfo.findInterfaces();
如果(netInterfaces&&netInterfaces.length>0){
每个(变量i:网络接口中的网络接口){
如果(i.active){
变量地址:向量=i地址;
每个(变量j:地址中的接口地址){
跟踪(“-Host:+j.address”);
}
}
}
}
shot,那我该怎么做呢??(我是唯一一个IPv6混淆了这些废话的人)这取决于你想要实现什么,如果你想知道air应用程序用于连接服务器的地址,试着在服务器端获取它,如果你想要除本地主机以外的所有地址,请检查netInterfaces.name属性,如果您只需要ip4地址,请按type.shot筛选地址数组中的地址,那么我如何才能做到这一点??(我是唯一一个IPv6混淆了这些废话的人)这取决于你想要实现什么,如果你想知道air应用程序用于连接服务器的地址,试着在服务器端获取它,如果你想要除本地主机以外的所有地址,请检查netInterfaces.name属性,如果只需要ip4地址,请按类型过滤地址数组中的地址。如果在Android上,请不要忘记设置权限;如果在Android上,请不要忘记设置权限: