as3可能能获取本地IP的几种方法

来源:互联网 发布:2010年9月vb真考题型 编辑:程序博客网 时间:2024/05/16 04:23

通过air可以获取本机物理网络信息:
官方提供的示例代码:

  1.package
   {
2.import flash.display.Sprite; 
3.import flash.net.InterfaceAddress; 
4.import flash.net.NetworkInfo; 
5.import flash.net.NetworkInterface; 
6.
7.public class GetAddress extends Sprite { 
8.public function GetAddress() {
9.var networkInfo:NetworkInfo = NetworkInfo.networkInfo; 
10.var interfaces:Vector.<NetworkInterface> = networkInfo.findInterfaces(); 
11.if(interfaces != null ) { 
12.trace( "Interface count: " + interfaces.length ); 
13.for each ( var interfaceObj:NetworkInterface in interfaces ) {
14.trace( "\nname: "           + interfaceObj.name ); 
15.trace( "display name: "     + interfaceObj.displayName ); 
16.trace( "mtu: "              + interfaceObj.mtu ); 
17.trace( "active?: "          + interfaceObj.active ); 
18.trace( "parent interface: " + interfaceObj.parent ); 
19.trace( "hardware address: " + interfaceObj.hardwareAddress ); 
20.if( interfaceObj.subInterfaces != null ) {
21.trace( "# subinterfaces: " + interfaceObj.subInterfaces.length ); 
22.}
23.trace("# addresses: "     + interfaceObj.addresses.length ); 
24.for each ( var address:InterfaceAddress in interfaceObj.addresses ) { 
25.trace( "  type: "           + address.ipVersion ); 
26.trace( "  address: "        + address.address ); 
27.trace( "  broadcast: "      + address.broadcast ); 
28.trace( "  prefix length: "  + address.prefixLength ); 
29.}
30.}
31.}
32.}
33.}
34.}


还有个办法就是 通过js 简介获取ip ,我以前是用js其调用其他ip接口
下面是我整理的几个接口地址
腾讯的IP地址API接口地址:http://fw.qq.com/ipaddress
新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js(还有json和xml格式)
新浪多地域测试方法:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=12.130.132.30
搜狐IP地址查询接口(默认GBK):http://pv.sohu.com/cityjson
搜狐IP地址查询接口(可设置编码):http://pv.sohu.com/cityjson?ie=utf-8
搜狐另外的IP地址查询接口:http://txt.go.sohu.com/ip/soip

这几个个接口中,只有新浪接口下有crossdomain.xml文件,所以如果用AS3直接访问的话,建议选择新浪接口,不然会遇到安全沙箱哦!

 


import flash.net.InterfaceAddress;
import flash.net.NetworkInfo;
import flash.net.NetworkInterface;
var networkInfo:NetworkInfo = NetworkInfo.networkInfo;
var interfaces:Vector.<NetworkInterface> = networkInfo.findInterfaces();
if( interfaces != null )
{
for each ( var interfaceObj:NetworkInterface in interfaces )
{
for each ( var address:InterfaceAddress in interfaceObj.addresses )
{
trace( " type: " + address.ipVersion );
trace( " address: " + address.address );
}
}  
}


2011-09-05 11:08 flash as3 xml 获取用户 ip 地址 //LoadXml---------------------------------------------------------
var LoadXML:XML = new XML();

var exxml:XML;//set variable exxml as xml data type

var loader:URLLoader = new URLLoader();//set variable  loader as URLLLoader data type

var requestt:URLRequest=new URLRequest("http://webservice.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx/getGeoIPContext");

//set variable  requestt as URLRequest data type with parameter(location of the external xml file)

loader.load(requestt);
loader.addEventListener(Event.COMPLETE, image_num_fromXML_OnComplete);
//----------------------------------------------------------------------
function image_num_fromXML_OnComplete(event:Event):void {
loader.removeEventListener(Event.COMPLETE, image_num_fromXML_OnComplete);
exxml=new XML(loader.data);
var ns:Namespace=exxml.namespace()
 var t:TextField=new TextField();
  t.text=loader.data
 t.x=100
 t.y=100
 t.width=1000
 t.height=1000
  addChild(t)
  trace(exxml.ns::string[0])
 txt.text= "你的ip是"+exxml.ns::string[0]+"你来自" +exxml.ns::string[1]
}


以下是js获取本地ip及mac地址的代码(网上多的是):
<HTML><HEAD><TITLE>WMI Scripting HTML</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">

<SCRIPT language=JScript event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for=foo>
document.forms[0].txtMACAddr.value=unescape(MACAddr);
document.all.txtIPAddr.value=unescape(IPAddr);
document.forms[0].txtDNSName.value=unescape(sDNSName);
//document.formbar.submit();
</SCRIPT>

<SCRIPT language=JScript event=OnObjectReady(objObject,objAsyncContext) for=foo>
   if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true)
   {
    if(objObject.MACAddress != null && objObject.MACAddress != "undefined")
    MACAddr = objObject.MACAddress;
    if(objObject.IPEnabled && objObject.IPAddress(0) != null && objObject.IPAddress(0) != "undefined")
    IPAddr = objObject.IPAddress(0);
    if(objObject.DNSHostName != null && objObject.DNSHostName != "undefined")
    sDNSName = objObject.DNSHostName;
    }
</SCRIPT>

<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY>
<OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
<OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
<SCRIPT language=JScript>
   var service = locator.ConnectServer();
   var MACAddr ;
   var IPAddr ;
   var DomainAddr;
   var sDNSName;
   service.Security_.ImpersonationLevel=3;
   service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
   </SCRIPT>

<FORM id=formfoo name=formbar action=NICPost.asp method=post><INPUT value=00:05:5D:0E:C7:FA name=txtMACAddr> <INPUT value=58.245.184.191 name=txtIPAddr> <INPUT value=typ name=txtDNSName> </FORM></BODY></HTML>


as3获取本地IP

import flash.net.InterfaceAddress;
import flash.net.NetworkInfo;
import flash.net.NetworkInterface;
var networkInfo:NetworkInfo = NetworkInfo.networkInfo;
var interfaces:Vector.<NetworkInterface> = networkInfo.findInterfaces();
if( interfaces != null )
{
for each ( var interfaceObj:NetworkInterface in interfaces )
{
for each ( var address:InterfaceAddress in interfaceObj.addresses )
{
trace( " type: " + address.ipVersion );
trace( " address: " + address.address );
}
}  
}

 


Flash COOKIE 技术 一早就知道flash中有cookies技术

但今天才真正接近它。。

以下是转载:

笔者将本文分为2个部分为大家讲解如何利用Flash Cookie实现游戏存档技术
第一部分:语法讲解;
第二部分:注意事项;
本文开发环境 Flash8.0   AS 2.0
第一部分:语法讲解:
Flash主要是利用SharedObject类实现本地存储信息(类似Cookie,下文用Cookie代替),在AS调用如下图:

SharedObject 类用于在用户计算机上读取和存储有限的数据量。共享对象提供永久贮存在用户计算机上的对象之间的实时数据共享。
用法:
创建Cookie

复制内容到剪贴板代码://实例化一个SharedObject对象FlashCookie,名为:CookieNameQQX
//如果CookieNameQQX不存在则创建该Cookie,如果存在则读取
var FlashCookie:SharedObject = SharedObject.getLocal("CookieNameQQX");
//定义一个Cookie变量UserName并赋值为:千秋学
FlashCookie.data.UserName = "千秋学";
FlashCookie.data.Sex = "男";
FlashCookie.data.Life = 100;
//可以存储数组数据
var Score_array:Array = new Array(80,90,99,70,84);
FlashCookie.data.Score = Score_array;
//写入Cookie
FlashCookie.flush();
删除Cookie:

复制内容到剪贴板代码:var FlashCookie:SharedObject = SharedObject.getLocal("CookieNameQQX");
FlashCookie .clear();
读取Cookie值

复制内容到剪贴板代码:var FlashCookie:SharedObject = SharedObject.getLocal("CookieNameQQX");
trace(FlashCookie.data.UserName);
trace(FlashCookie.data.Score[0]);
第二部分:注意事项:

1、 Flash Cookie技术依赖于本地设置
有时可能不允许 SWF 文件写入本地共享对象,有时可能在您不知情的情况下删除在本地共享对象中存储的数据。Flash Player 用户可以管理对单个域或所有域可用的磁盘空间。当用户降低可用磁盘空间量时,一些本地共享对象可能会被删除。

2、 Flash Player 用户还具有隐私控件,它们可防止第三方域(当前浏览器地址栏中域之外的域)读取或写入本地共享对象。
例如:C:\no1.swf 创建了一个名为aa的Cookie,该Cookie将不会被C:\no2.swf所获取;也就是说C:\no1.swf与C:\no2.swf所创建的Cookie,即使名字相同也不会互相影响;同样的道理,基于网络的flash文件,http://www.tg02.com/no1.swf 创建的Cookie也不会被其它文件网络文件所访问。
3、 Flash Cookie文件存储在本地文件夹
C:\Documents and Settings\电脑用户\Application Data\Macromedia\Flash Player\#SharedObjects
4、Flash Cookie可以被修改以及被访问.