오늘 저는 클라이언트 IP를 얻기 위해 JS (JavaScript)에서 작업하고 있습니다. 인터넷을 검색 한 후 현재 시스템과 브라우저에서 많은 사람들이 유효하지 않다는 것을 알았습니다. 나는 무력했다. Chrome과 Firefox에서는 IP 및 기타 JS 스크립트를 얻기 위해 ActiveX를 거의 사용하지 않습니다. 다음 코드는 모든 Windows NT5.0 이상에서 테스트하고 전달한 것입니다.
1. JS를 사용하여 클라이언트 IP를 얻는 몇 가지 방법
방법 1 (IE 및 클라이언트 IE 만 사용하면 ActiveX가 플랫폼을 통해 실행할 수 있습니다 : XP, Server03, 2000).
클라이언트 IP 코드 받기 :
코드 사본은 다음과 같습니다.
<html>
<헤드>
<title> getLocalip </title>
</head>
<body>
IP 받기 :
<script language = "javaScript"> 함수 getLocalipaddr () {var osetting = null; var ip = null; try {osetting = new ActiveXobject ( "rcbdyctl.setting"); ip = osetting.getipaddress; if (ip.length == 0) {return "인터넷에 연결되지 않음"; } osetting = null; } catch (e) {return ip; } 반환 IP; } document.write (getLocalipaddr ()+"<br/>") </script>
</body>
</html>
방법 2 (모든 플랫폼 및 브라우저) :
네트워크에서 클라이언트의 IP를 얻는 것은 클라이언트가 인터넷에 연결되어야한다는 전제입니다. SINA 인터페이스가 사용됩니다.
코드 사본은 다음과 같습니다.
<html>
<헤드>
<meta http-equiv = "content-type"content = "text/html; charset = gb2312">
<title> javaScript가 클라이언트 IP를 가져옵니다 [Sina Interface 사용] </title>
</head>
<body>
<script type = "text/javaScript"src = "http://counter.sina.c.cn/ip/"charset = "gb2312"> </script> <!-인터페이스 데이터를 얻고 charset에주의하십시오->
<script type = "text/javaScript">
document.writeln ( "IP 주소 :"+ildata [0]+"<br />"); // 출력 인터페이스 데이터의 IP 주소
document.writeln ( "주소 유형 :"+ildata [1]+"<br />"); // 출력 인터페이스 데이터의 IP 주소 유형
document.writeln ( "주소 유형 :"+ildata [2]+"<br />"); // 인터페이스 데이터에서 IP 주소를 출력하는 지방과 도시
document.writeln ( "주소 유형 :"+ildata [3]+"<br />"); // 인터페이스 데이터에서 IP 주소를 출력합니다
document.writeln ( "주소 유형 :"+ildata [4]+"<br />"); // 출력 인터페이스 데이터에서 IP 주소의 운영자
</스크립트>
</body>
</html>
방법 3 (모든 플랫폼 및 브라우저) :
SOHU 인터페이스가 사용되었습니다
코드 사본은 다음과 같습니다.
<script src = "http://pv.sohu.com/cityjson?ie=utf-8"> </script>
<script type = "text/javaScript">
document.write (returnCitySn [ "cip"]+','+returnCitySn [ "cname"])
</스크립트>
방법 4 : 태평양 컴퓨터 네트워크 IP 쿼리 인터페이스 :
http://whois.pconline.com.cn/?ip=0.0.0.0
0.0.0.0을 IP 주소로 바꾸면 페이지에 다른 관련없는 콘텐츠가 있습니다. 이 내용은 어떤 인터페이스를 호출 할 수 있는지, 인터페이스 호출 매개 변수 및 사용법 메소드 등을 알려줍니다.
위의 JS 인터페이스 통화를 통해 어떤 도시에 속한지를 결정하고 도시의 관련 정보를 직접 표시 할 수 있습니다. 도시 전환이 필요한 웹 사이트의 경우 처음으로 사용자의 소스를 결정하는 것이 매우 도움이됩니다.
2. JS를 사용하여 컴퓨터 이름, Mac 주소 및 Lan IP를 얻습니다.
메소드 1 (IE 및 클라이언트 IE에 대해서만 ActiveX가 실행할 수 있음) :
컴퓨터 이름을 얻으려면 VBS 스크립트 (일부 사람들은 컴퓨터 이름이 무엇인지 알지 못합니다. 간단한 설명은 사용중인 사용자 이름이 아닌 기계의 실제 이름이라는 간단한 설명과 로그인 사용자 이름이라는 간단한 설명입니다.
코드 사본은 다음과 같습니다.
<html>
<헤드>
<title> WMI 스크립팅 html </title>
</head>
<body>
<스크립트 언어 = javaScript>
var wshshell = new ActiveXobject ( "wscript.shell");
documb
document.write ( "login username ="+ wshshell.expandenvironmentstrings ( "%username%")+ "<br/>");
</스크립트>
</body>
</html>
방법 2 (IE 및 클라이언트 IE에 대해서만 ActiveX가 실행할 수 있음) :
컴퓨터 이름, 사용자 이름에 로그인 한 및 도메인 이름을 가져옵니다 (도메인에 결합하면 시스템이있는 도메인이 표시됨).
코드 사본은 다음과 같습니다.
<html>
<헤드>
<title> WMI 스크립팅 html </title>
</head>
<body>
<스크립트 언어 = javaScript>
var wshnetwork = new ActiveXobject ( "wscript.network");
document.write ( "domain ="+ wshnetwork.userdomain+ "<br/>");
document.write ( "computer name ="+ wshnetwork.compepername+ "<br/>");
document.write ( "login username ="+ wshnetwork.username+ "<br/>");
</스크립트>
</body>
</html>
메소드 3 (IE 및 클라이언트 IE에 대해서만 ActiveX가 실행할 수 있음) :
LAN IP 주소, 기계의 Mac 및 기계 이름 (네트워크의 코드 소스)을 얻을 수 있습니다.
코드 사본은 다음과 같습니다.
<html>
<헤드>
<제목> </title>
</head>
<body>
<Object ClassId = "ClsID : 76A64158-CB41-11D1-8B02-00600806D9B6"ID = "Locator"Style = "Display : None; 가시성 : 숨겨진"> </object>
<Object ClassId = "ClsID : 75718C9A-F029-11D1-A1AC-00C04FB6C223"id = "foo"style = "display : none; 가시성 : 숨겨진"> </object>
<form name = "myform">
<br/> Mac 주소 : <입력 유형 = "text"name = "macaddress">
<br/> IP 주소 : <input type = "text"name = "iPaddress">
<br/> 호스트 이름 : <input type = "text"name = "hostname">
</form>
</body>
</html>
<script language = "javaScript">
var smacaddr = "";
var sipaddr = "";
var sdnsname = "";
var service = locator.connectserver ();
service.security_.impersonationlevel = 3;
service.instancesofasync (foo, 'win32_networkadapterconfiguration');
</스크립트>
<script for = "foo"event = "onobjectready (objobject, objasynccontext)"언어 = "jscript">
if (objobject.ipenabled! = null && objobject.ipenabled! = "undefined"&& objobject.ipenabled == true) {
if (objobject.ipenabled && objobject.ipaddress (0)! = null && objobject.ipaddress (0)! = "undefined")
sipaddr = objobject.ipaddress (0);
if (objobject.macaddress! = null && objobject.macaddress! = "undefined")
smacaddr = objobject.macaddress;
if (objobject.dnshostname! = null && objobject.dnshostname! = "undefined")
sdnsname = objobject.dnshostname;
}
</스크립트>
< "foo"event = "oncompleted (hresult, perrorobject, pasynccontext)"언어 = "jscript">
myform.macaddress.value = smacaddr;
myform.ipaddress.value = sipaddr;
myform.hostname.value = sdnsname;
</스크립트>