Hoje, estou trabalhando no JS (JavaScript) para obter IP do cliente. Eu procurei na Internet e descobri que muitos deles são inválidos no sistema e no navegador atual. Eu estava impotente. No Chrome e Firefox, raramente uso o ActiveX para obter IP e outros scripts JS. O código a seguir é o que eu testei e transmiti em todos os sistemas Windows NT5.0 e acima, e dei o código:
1. Várias maneiras de obter IP do cliente usando JS
O método 1 (apenas para o IE e o cliente IE permite que o ActiveX seja executado, através da plataforma: XP, Server03, 2000).
Obtenha o código IP do cliente:
A cópia do código é a seguinte:
<html>
<head>
<title> getLocalip </title>
</head>
<Body>
Obtenha IP:
<script linguage = "javascript"> function getLocalipaddr () {var asetting = null; var ip = nulo; tente {asetting = new ActiveXObject ("rcbdyctl.setting"); ip = osetting.getipaddress; if (ip.length == 0) {return "não conectado à internet"; } OSETTING = NULL; } catch (e) {return ip; } retornar ip; } document.write (getLocalipaddr ()+"<br/>") </sCript>
</Body>
</html>
Método 2 (todas as plataformas e navegadores):
Obter o IP do cliente na rede é a premissa de que o cliente deve estar conectado à Internet. A interface Sina é usada.
A cópia do código é a seguinte:
<html>
<head>
<meta http-equiv = "content-type" content = "text/html; charset = gb2312">
<title> JavaScript recebe IP do cliente [Use Sina Interface] </ititle>
</head>
<Body>
<script type = "text/javascript" src = "http://counter.sina.com.cn/ip/" charset = "gb2312"> </script> <!-Obtenha dados de interface, preste atenção ao charset->
<script type = "text/javascript">
document.writeln ("endereço IP:"+ildata [0]+"<r />"); // O endereço IP nos dados da interface de saída
document.writeln ("Tipo de endereço:"+ildata [1]+"<r />"); // O tipo de endereço IP nos dados da interface de saída
document.writeln ("Tipo de endereço:"+ildata [2]+"<r />"); // A província e a cidade de emitir o endereço IP nos dados da interface
document.writeln ("Tipo de endereço:"+ildata [3]+"<r />"); // Sair o endereço IP nos dados da interface
document.writeln ("Tipo de endereço:"+ildata [4]+"<r />"); // O operador do endereço IP nos dados da interface de saída
</script>
</body>
</html>
Método 3 (todas as plataformas e navegadores):
Interface Sohu usada
A cópia do código é a seguinte:
<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: Interface de consulta IP da rede de computadores do Pacífico:
http://whois.pconline.com.cn/?ip=0.0.0.0
Substitua 0.0.0.0 pelo endereço IP e há outro conteúdo irrelevante na página. Esses conteúdos nos dizem quais interfaces podem ser chamadas, parâmetros de chamadas de interface e métodos de uso, etc.
Através da chamada da interface JS acima, você pode determinar a qual cidade pertencer e exibir diretamente as informações relevantes da cidade. Para sites que exigem troca de cidades, é muito útil determinar a fonte do usuário pela primeira vez.
2. Use JS para obter o nome do computador, endereço MAC e LAN IP
Método 1 (apenas para o IE e o cliente, o IE permite que o ActiveX seja executado):
Ligue para o script VBS para obter o nome do computador (algumas pessoas não sabem qual é o nome do computador, a explicação simples é que é o nome físico da máquina e não o nome de usuário que você está usando) e o nome de usuário de login.
A cópia do código é a seguinte:
<html>
<head>
<title> WMI Script html </title>
</head>
<Body>
<idioma do script = javascript>
var wshshell = new ActiveXObject ("wscript.shell");
Document.Write ("Nome do computador ="+ wshshell.expandenvironmentstrings ("%computername%")+ "<br/>");
Document.Write ("Login UserName ="+ wshshell.expandenvironmentstrings ("%nome de usuário%")+ "<br/>");
</script>
</Body>
</html>
Método 2 (apenas para o IE e o cliente, o IE permite que o ActiveX seja executado):
Obtenha o nome do computador, registrado em nome de usuário e nome de domínio (se você ingressar no domínio, ele mostra em qual domínio sua máquina está).
A cópia do código é a seguinte:
<html>
<head>
<title> WMI Script html </title>
</head>
<Body>
<idioma do script = javascript>
var wshNetwork = new ActiveXObject ("wscript.network");
document.write ("domain ="+ wshnetwork.userDomain+ "<br/>");
document.write ("nome do computador ="+ wshnetwork.computerName+ "<br/>");
Document.Write ("Login UserName ="+ wshnetwork.username+ "<br/>");
</script>
</Body>
</html>
Método 3 (apenas para o IE e o cliente, o IE permite que o ActiveX seja executado):
Você pode obter o endereço IP da LAN, o Mac da máquina e o nome da máquina (fonte de código da rede).
A cópia do código é a seguinte:
<html>
<head>
<Title> </title>
</head>
<Body>
<Object ClassID = "CLSID: 76A64158-CB41-11D1-8B02-00600806D9B6" ID = "Locor" Style = "Display: Nenhum; visibilidade: Hidden"> </ject>
<Object ClassID = "CLSID: 75718C9A-F029-11D1-A1AC-00C04FB6C223" ID = "Foo" Style = "Display: Nenhum; visibilidade: Hidden"> </ject>
<nome name = "myform">
<br/> Endereço MAC: <input type = "text" name = "macaddress">
<br/> Endereço IP: <input type = "text" name = "ipaddress">
<br/> Nome do host: <input type = "text" name = "hostname">
</morm>
</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>
<script para = "foo" event = "onobjectiony (objobject, objasyncContext)" idioma = "jscript">
if (objobject.ipeNabled! = null && objobject.ipeNabled! = "indefinido" && 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 para = "foo" event = "onCompleted (hresult, perrorObject, pasynccontext)" idioma = "jscript">
myform.macaddress.value = smacaddr;
myform.ipaddress.value = sipaddr;
myform.hostname.value = sdnsname;
</script>