Сегодня я работаю над JS (JavaScript), чтобы получить IP клиента. Я искал в Интернете и обнаружил, что многие из них недействительны в текущей системе и браузере. Я был беспомощным. В Chrome и Firefox я редко использую ActiveX для получения IP и других сценариев JS. Следующий код - это то, что я протестировал и передал во всех системах Windows NT5.0 и выше, и дал код:
1. Несколько способов получить IP -клиент с помощью JS
Метод 1 (только для IE и клиента IE позволяет запускать ActiveX через платформу: XP, Server03, 2000).
Получить клиент IP -код:
Кода -копия выглядит следующим образом:
<html>
<Голова>
<Title> getLocalip </title>
</Head>
<Тело>
Получить IP:
<script language = "javascript"> function 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; } return 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] </title>
</head>
<тело>
<script type = "text/javascript" src = "http://counter.sina.com.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 -адреса в данных интерфейса выходного сигнала
</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 -запроса Pacific Computer Network:
http://whois.pconline.com.cn/?ip=0.0.0.0
Замените 0.0.0.0 на IP -адрес, и на странице есть и другие неуместные контенты. Это содержимое говорит нам, какие интерфейсы могут быть вызваны, параметры интерфейса и методы использования и т. Д.
Благодаря вышеуказанному интерфейсному вызову JS вы можете определить, к какому городу вы принадлежите, и непосредственно отобразить соответствующую информацию города. Для веб -сайтов, которые требуют переключения города, впервые очень полезно определить источник пользователя.
2. Используйте JS для получения имени компьютера, MAC -адреса и IP LAN
Метод 1 (только для IE и клиента IE позволяет работать ActiveX):
Позвоните в скрипт VBS, чтобы получить имя компьютера (некоторые люди не знают, как называется имя компьютера, простое объяснение состоит в том, что это физическое имя машины, а не имя пользователя, которое вы используете) и имя пользователя Login.
Кода -копия выглядит следующим образом:
<html>
<Голова>
<Title> WMI Scripting HTML </title>
</Head>
<Тело>
<сценарий языка = javascript>
var wshshell = new ActivexObject ("wscript.shell");
document.write ("computer name ="+ wshshell.expandenvironmentstrings ("%computername%")+ "<br/>");
document.write ("login username ="+ wshshell.expandenvironmentstrings ("%username%")+ "<br/>");
</script>
</Body>
</Html>
Метод 2 (только для IE и клиента IE позволяет работать ActiveX):
Получите имя компьютера, зарегистрировано в имени пользователя и доменное имя (если вы присоединяетесь к домену, он показывает, в каком домене находится ваша машина).
Кода -копия выглядит следующим образом:
<html>
<Голова>
<Title> WMI Scripting HTML </title>
</Head>
<Тело>
<сценарий языка = javascript>
var wshnetwork = new ActivexObject ("wscript.network");
document.write ("domain ="+ wshnetwork.userdomain+ "<br/>");
document.write ("name компьютера ="+ wshnetwork.computername+ "<br/>");
document.write ("login username ="+ wshnetwork.username+ "<br/>");
</script>
</Body>
</Html>
Метод 3 (только для IE и клиента IE позволяет работать ActiveX):
Вы можете получить IP -адрес LAN, Mac машины и имя машины (источник кода из сети).
Кода -копия выглядит следующим образом:
<html>
<голова>
<title> </title>
</head>
<тело>
<Object classid = "clsid: 76a64158-cb41-11d1-8b02-00600806d9b6" id = "locator" style = "display: none; Видимость: Hidden"> </Object>
<Object classid = "clsid: 75718c9a-f029-11d1-a1ac-00c04fb6c223" id = "foo" style = "display: none; видимость: hidden"> </object>
<form name = "myform">
<br/> mac -адрес: <input type = "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.InstanceOfAsync (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! = "Не определено")
smacaddr = objobject.macaddress;
if (objobject.dnshostname! = null && objobject.dnshostname! = "Не определено")
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>