วันนี้ฉันกำลังทำงานกับ JS (JavaScript) เพื่อรับ IP ไคลเอนต์ ฉันค้นหาอินเทอร์เน็ตและพบว่าหลายคนไม่ถูกต้องในระบบปัจจุบันและเบราว์เซอร์ ฉันทำอะไรไม่ถูก ใน Chrome และ Firefox ฉันไม่ค่อยใช้ ActiveX เพื่อรับ IP และสคริปต์ JS อื่น ๆ รหัสต่อไปนี้คือสิ่งที่ฉันทดสอบและส่งผ่านระบบ Windows NT5.0 และด้านบนทั้งหมดและให้รหัส:
1. หลายวิธีในการรับ IP ไคลเอนต์โดยใช้ JS
วิธีที่ 1 (สำหรับ IE และไคลเอนต์ IE อนุญาตให้ ActiveX ทำงานผ่านแพลตฟอร์ม: XP, Server03, 2000)
รับรหัส IP ของไคลเอนต์:
การคัดลอกรหัสมีดังนี้:
<html>
<head>
<title> getLocalip </title>
</head>
<body>
รับ IP:
<script language = "JavaScript"> ฟังก์ชั่น getLocalipaddr () {var osetting = null; var ip = null; ลอง {osetting = new ActiveXObject ("rcbdyctl.setting"); ip = osetting.getipaddress; if (ip.length == 0) {return "ไม่เชื่อมต่อกับอินเทอร์เน็ต"; } osetting = null; } catch (e) {return ip; } return ip; } document.write (getLocalipaddr ()+"<br/>") </script>
</body>
</html>
วิธีที่ 2 (แพลตฟอร์มและเบราว์เซอร์ทั้งหมด):
การได้รับ IP ของไคลเอนต์บนเครือข่ายเป็นหลักฐานที่ว่าไคลเอนต์จะต้องเชื่อมต่อกับอินเทอร์เน็ต ใช้อินเทอร์เฟซ SINA
การคัดลอกรหัสมีดังนี้:
<html>
<head>
<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.com.cn/ip/" charset = "gb2312"
<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 ในข้อมูลอินเทอร์เฟซเอาต์พุต
</script>
</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"]))
</script>
วิธีที่ 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>
<head>
<title> WMI Scripting HTML </title>
</head>
<body>
<ภาษาสคริปต์ = JavaScript>
var wshshell = new ActiveXObject ("wscript.shell");
document.write ("ชื่อคอมพิวเตอร์ ="+ wshshell.expandenvironmentstrings ("%computerName%")+ "<br/>");
document.write ("เข้าสู่ระบบชื่อผู้ใช้ ="+ wshshell.expandenvironmentstrings ("%ชื่อผู้ใช้%")+ "<br/>");
</script>
</body>
</html>
วิธีที่ 2 (สำหรับ IE และไคลเอ็นต์เท่านั้นที่อนุญาตให้ใช้งาน ActiveX):
รับชื่อคอมพิวเตอร์ลงชื่อเข้าใช้ชื่อผู้ใช้และชื่อโดเมน (ถ้าคุณเข้าร่วมโดเมนจะแสดงว่าเครื่องของคุณอยู่ในโดเมนใด)
การคัดลอกรหัสมีดังนี้:
<html>
<head>
<title> WMI Scripting HTML </title>
</head>
<body>
<ภาษาสคริปต์ = JavaScript>
var wshnetwork = new ActiveXObject ("wscript.network");
document.write ("domain ="+ wshnetwork.userdomain+ "<br/>");
document.write ("ชื่อคอมพิวเตอร์ ="+ wshnetwork.computername+ "<br/>");
document.write ("เข้าสู่ระบบชื่อผู้ใช้ ="+ wshnetwork.username+ "<br/>");
</script>
</body>
</html>
วิธีที่ 3 (สำหรับ IE และไคลเอ็นต์ IE อนุญาตให้ใช้งาน ActiveX):
คุณสามารถรับที่อยู่ LAN IP, Mac ของเครื่องและชื่อเครื่อง (แหล่งที่มาของรหัสจากเครือข่าย)
การคัดลอกรหัสมีดังนี้:
<html>
<head>
<title> </title>
</head>
<body>
<Object classid = "ClSID: 76A64158-CB41-11D1-8B02-00600806D9B6" id = "locator" style = "แสดง: ไม่มี;
<Object classid = "ClSID: 75718C9A-F029-11D1-A1AC-00C04FB6C223" id = "foo" style = "แสดง: ไม่มี;
<form name = "myform">
<br/> ที่อยู่ MAC: <อินพุต type = "text" name = "macaddress">
<br/> ที่อยู่ IP: <อินพุต type = "text" name = "ipaddress">
<br/> ชื่อโฮสต์: <อินพุต type = "text" name = "hostname">
</form>
</body>
</html>
<ภาษาสคริปต์ = "JavaScript">
var smacaddr = "";
var sipaddr = "";
var sdnsname = "";
var service = locator.connectserver ();
Service.Security_.ImpersonationLevel = 3;
Service.instancesofasync (foo, 'win32_networkadapterconfiguration');
</script>
<script for = "foo" event = "onobjectready (objobject, objasyncContext)" language = "jscript">
if (objobject.ipenabled! = null && objobject.ipenabled! = "undefined" && objobject.ipenabled == true) {
if (objobject.ipenabled && objobject.ipaddress (0)! = null && objobject.ipaddress (0)! = "ไม่ได้กำหนด")
sipaddr = objobject.ipaddress (0);
if (objobject.macaddress! = null && objobject.macaddress! = "undefined")
smacaddr = objobject.macaddress;
if (objobject.dnshostname! = null && objobject.dnshostname! = "undefined")
sdnsname = objobject.dnshostname;
-
</script>
<script for = "foo" event = "oncompleted (hresult, perrorobject, pasyncContext)" language = "jscript">
myform.macaddress.value = smacaddr;
myform.ipaddress.value = sipaddr;
myform.hostname.value = sdnsname;
</script>