JSがIP、MAC、ホスト名を取得する5つの方法
5589 ワード
今日はJS(javascript)をやってクライアントのIPを獲得する小さいプログラムをやって、インターネットを利用して検索して、多くの現在のシステムとブラウザーの中のがすべて無効で、とてもしようがなくて、Chrome、FireFoxの中でめったにActiveXを利用してIPなどのJS脚本を獲得しません.下のコードはすべてのwindowsNT 5.0及び以上のシステムでテストに合格しました.コードを提供します.
方法の1つ(IEのみで、クライアントのIEは、プラットフォーム:XP、SERVER 03、2000を介して、AcitiveXを実行することができる):
クライアントIPを取得します.
クライアントがネットワークにあるIPを取得するには、クライアントがネットワークに接続されることが前提となる.
VBSスクリプトを呼び出して、コンピュータ名を取得します.(コンピュータ名は何ですか?分かりません.簡単に説明すると、このマシンの物理名称です.あなたが使っているユーザ名ではありません.)とログインしたユーザ名です.
コンピュータ名、ログインのユーザー名とドメイン名を取得します.
LAN IPアドレス、自機のMAC、およびマシン名(コードソースネットワーク)を取得することができます.
方法の1つ(IEのみで、クライアントのIEは、プラットフォーム:XP、SERVER 03、2000を介して、AcitiveXを実行することができる):
クライアントIPを取得します.
GetLocalIP
IP:
function GetLocalIPAddr(){ var oSetting = null; var ip = null; try{ oSetting = new ActiveXObject("rcbdyctl.Setting"); ip = oSetting.GetIPAddress; if (ip.length == 0){ return " Internet"; } oSetting = null; }catch(e){ return ip; } return ip; } document.write(GetLocalIPAddr()+"<br/>")
方法二(すべてのプラットフォームとブラウザ):クライアントがネットワークにあるIPを取得するには、クライアントがネットワークに接続されることが前提となる.
JavaScript IP[ ]
<br>document.writeln("IP :"+ILData[0]+"<br />"); // IP
<br>document.writeln(" :"+ILData[1]+"<br />"); // IP
<br>document.writeln(" :"+ILData[2]+"<br />"); // IP
<br>document.writeln(" :"+ILData[3]+"<br />"); // IP
<br>document.writeln(" :"+ILData[4]+"<br />"); // IP
<br>
方法3(IEのみであり、クライアントのIEに対してAcitiveXを実行させる):VBSスクリプトを呼び出して、コンピュータ名を取得します.(コンピュータ名は何ですか?分かりません.簡単に説明すると、このマシンの物理名称です.あなたが使っているユーザ名ではありません.)とログインしたユーザ名です.
WMI Scripting HTML
<br>var WshShell =new ActiveXObject("WScript.Shell");
<br>document.write(" = "+ WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")+"<br/>");
<br>document.write(" = "+ WshShell.ExpandEnvironmentStrings("%USERNAME%")+"<br/>");
<br>
方法4(IEのみであり、クライアントのIEに対してAcitiveX動作を許可する):コンピュータ名、ログインのユーザー名とドメイン名を取得します.
WMI Scripting HTML
<br>var wshNetwork = new ActiveXObject("WScript.Network");
<br>document.write(" = "+ wshNetwork.UserDomain+"<br/>");
<br>document.write(" = "+ wshNetwork.ComputerName+"<br/>");
<br>document.write(" = "+ wshNetwork.UserName+"<br/>");
<br>
方法5(IEのみであり、クライアントのIEに対してAcitiveX動作を許可する):LAN IPアドレス、自機のMAC、およびマシン名(コードソースネットワーク)を取得することができます.
<br/>
<br/>
<br/><object classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6" id="locator" style="display:none;visibility:hidden"/>
<br/><object classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223" id="foo" style="display:none;visibility:hidden"/>
<br/><form name="myForm">
<br/><br/>MAC :<input type="text" name="macAddress"/>
<br/><br/>IP :<input type="text" name="ipAddress"/>
<br/><br/> :<input type="text" name="hostName"/>
<br/></form>
<br/>
<br/>
<br/><script language="javascript">
<br>var sMacAddr="";
<br>var sIPAddr="";
<br>var sDNSName="";
<br>var service = locator.ConnectServer();
<br>service.Security_.ImpersonationLevel=3;
<br>service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
<br></script>
<br/><script for="foo" event="OnObjectReady(objObject,objAsyncContext)" language="JScript">
<br>if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true){
<br>if(objObject.IPEnabled && objObject.IPAddress(0) !=null && objObject.IPAddress(0) != "undefined")
<br>sIPAddr = objObject.IPAddress(0);
<br>if(objObject.MACAddress != null &&objObject.MACAddress != "undefined")
<br>sMacAddr = objObject.MACAddress;
<br>if(objObject.DNSHostName != null &&objObject.DNSHostName != "undefined")
<br>sDNSName = objObject.DNSHostName;
<br>}
<br></script>
<br/>
<br/><script for="foo" event="OnCompleted(hResult,pErrorObject, pAsyncContext)" language="JScript">
<br>myForm.macAddress.value=sMacAddr;
<br>myForm.ipAddress.value=sIPAddr;
<br>myForm.hostName.value=sDNSName;
<br></script>
<br/>
</code></pre>
<div class="clearfix">
<span id="art_bot" class="jbTestPos"/>
</div>
</div>
</div>
</div>