as3可能能獲取本地IP的幾種方法

通過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可以被修改以及被訪問.
 


 

發佈了24 篇原創文章 · 獲贊 4 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章