Hoy estoy trabajando en JS (JavaScript) para obtener IP del cliente. Busqué en Internet y descubrí que muchos de ellos no son válidos en el sistema y el navegador actual. Estaba indefenso. En Chrome y Firefox, rara vez uso ActiveX para obtener IP y otros scripts JS. El siguiente código es lo que probé y pasé en todos los sistemas de Windows NT5.0 y arriba, y le dio el código:
1. Varias formas de obtener IP del cliente usando JS
Método 1 (solo para IE y cliente, IE permite que ActiveX ejecute, a través de la plataforma: XP, Server03, 2000).
Obtenga el código IP del cliente:
La copia del código es la siguiente:
<html>
<Evista>
<title> getLocalip </title>
</ablo>
<Body>
Obtener IP:
<script language = "javaScript"> function getLocalIpAddr () {var osetting = null; var ip = nulo; intente {osetting = new ActiveXObject ("rcbdyctl.setting"); ip = osetting.getipaddress; if (ip.length == 0) {return "no conectado a Internet"; } osetting = null; } catch (e) {return ip; } return ip; } document.write (getLocalipAddr ()+"<br/>") </script>
</body>
</Html>
Método 2 (todas las plataformas y navegadores):
Obtener la IP del cliente en la red es la premisa de que el cliente debe estar conectado a Internet. Se utiliza la interfaz SINA.
La copia del código es la siguiente:
<html>
<Evista>
<meta http-oquiv = "content-type" content = "text/html; charset = gb2312">
<title> JavaScript obtiene el cliente IP [use la interfaz SINA] </title>
</ablo>
<Body>
<script type = "text/javaScript" src = "http://counter.sina.com.cn/ip/" charset = "gb2312"> </script> <!-Obtenga datos de interfaz, preste atención a Charset->
<script type = "text/javaScript">
document.writeLn ("Dirección IP:"+ildata [0]+"<Br />"); // La dirección IP en los datos de la interfaz de salida
document.writeLn ("Tipo de dirección:"+ildata [1]+"<Br />"); // El tipo de dirección IP en los datos de la interfaz de salida
document.writeLn ("Tipo de dirección:"+ildata [2]+"<Br />"); // La provincia y la ciudad de producir la dirección IP en los datos de la interfaz
document.writeLn ("Tipo de dirección:"+ildata [3]+"<Br />"); // emite la dirección IP en los datos de la interfaz
document.writeLn ("Tipo de dirección:"+ildata [4]+"<Br />"); // El operador de la dirección IP en los datos de la interfaz de salida
</script>
</body>
</html>
Método 3 (todas las plataformas y navegadores):
Interfaz Sohu utilizada
La copia del código es la siguiente:
<script src = "http://pv.sohu.com/cityjson?ie=utf-8"> </script>
<script type = "text/javaScript">
document.write (returnCitySn ["CIP"]+','+returnCitySn ["cname"])
</script>
Método 4: Interfaz de consulta IP de red informática de Pacific:
http://whois.pconline.com.cn/?ip=0.0.0.0
Reemplace 0.0.0.0 con la dirección IP, y hay otro contenido irrelevante en la página. Estos contenidos nos dicen qué interfaces se pueden llamar, la interfaz llama a los parámetros y métodos de uso, etc.
A través de la llamada de interfaz JS anterior, puede determinar a qué ciudad pertenece y mostrar directamente la información relevante de la ciudad. Para los sitios web que requieren conmutación de la ciudad, es muy útil determinar la fuente del usuario por primera vez.
2. Use JS para obtener el nombre de la computadora, la dirección MAC y la IP LAN
Método 1 (solo para IE y cliente, IE permite que ActiveX se ejecute):
Llame al script VBS para obtener el nombre de la computadora (algunas personas no saben cuál es el nombre de la computadora, la simple explicación es que es el nombre físico de la máquina en lugar del nombre de usuario que está utilizando) y el nombre de usuario de inicio de sesión.
La copia del código es la siguiente:
<html>
<Evista>
<title> wmi scripting html </title>
</ablo>
<Body>
<Script Language = JavaScript>
var wshshell = new ActiveXObject ("wscript.shell");
document.write ("Computer name ="+ wshshell.EXPANDENVIRMENTSTRINGS ("%ComputerName%")+ "<br/>");
document.write ("Login UserName ="+ wshshell.EXPANDENVIRMENTSTRINGS ("%UserName%")+ "<br/>");
</script>
</body>
</Html>
Método 2 (solo para IE y cliente, IE permite que se ejecute ActiveX):
Obtenga el nombre de la computadora, inicie sesión en el nombre de usuario y el nombre de dominio (si se une al dominio, muestra en qué dominio está su máquina).
La copia del código es la siguiente:
<html>
<Evista>
<title> wmi scripting html </title>
</ablo>
<Body>
<Script Language = JavaScript>
var wshnetwork = new ActiveXObject ("wscript.network");
document.write ("domain ="+ wshnetwork.userdomain+ "<br/>");
document.write ("Computer name ="+ wshnetwork.computername+ "<br/>");
document.write ("Login UserName ="+ wshnetwork.username+ "<br/>");
</script>
</body>
</Html>
Método 3 (solo para IE y cliente, IE permite que ActiveX se ejecute):
Puede obtener la dirección IP LAN, la Mac de la máquina y el nombre de la máquina (fuente de código de la red).
La copia del código es la siguiente:
<html>
<Evista>
<title> </title>
</ablo>
<Body>
<Object ClassID = "CLSID: 76A64158-CB41-11D1-8B02-00600806D9B6" ID = "Locator" style = "Display: Ninguno; Visibilidad: Hidden"> </ject>
<Object ClassID = "CLSID: 75718C9A-F029-11D1-A1AC-00C04FB6C223" ID = "foo" style = "Display: None; Visibility: Hidden"> </ject>
<form de nombre = "myform">
<br/> dirección MAC: <input type = "text" name = "macaddress">
<br/> Dirección IP: <input type = "text" name = "ipaddress">
<br/> nombre de host: <input type = "text" name = "hostname">
</form>
</body>
</html>
<script language = "javaScript">
var smacaddr = "";
var sipaddr = "";
var sdnsname = "";
servicio var = locator.connectserver ();
servicio.security_.ImmipsonationLevel = 3;
Service.instancesofasync (foo, 'win32_networkAdapterconfiguration');
</script>
<script for = "foo" event = "onobjectready (objobject, objasyncContext)" lenguaje = "jscript">
if (obJObject.IpeNabled! = NULL && objobject.Ipenable! = "Undefined" && obJObject.IpeNabled == true) {
if (obJObject.IPEnabled && objobject.ipaddress (0)! = null && objobject.ipaddress (0)! = "indefinido")
sipaddr = objobject.ipaddress (0);
if (objobject.macaddress! = null && objobject.macaddress! = "indefinido")
smacaddr = objobject.macaddress;
if (objobject.dnshostname! = null && objobject.dnshostname! = "indefinido")
sdnsname = objobject.dnshostName;
}
</script>
<script for = "foo" event = "onCompleted (HResult, PerrorObject, PasyncContext)" lenguaje = "jscript">
myForm.macaddress.value = smacaddr;
myForm.ipaddress.value = sipaddr;
myForm.hostName.Value = sdnsname;
</script>