在页面获取本地电脑IP
- <%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
- <%
- ResourceBundle resource = ResourceBundle.getBundle("config");
- String ctx = request.getContextPath();
- request.setAttribute("ctx", ctx);
- %>
- <!-- <html lang="en" style="min-height: 100%;overflow: hidden">
- <head lang="zh-cn">
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <meta content="MSHTML 6.00.2800.1106" name="GENERATOR">
- </head>
- <body> -->
- <!--<form id="formfoo" name="formbar" action="#" method="post" style="display:none">
- <input value="00:05:5D:0E:C7:FA" name="txtMACAddr">
- <input value="192.168.30.68" name="txtIPAddr">
- <input value="lzf" name="txtDNSName">
- </form>-->
- <!-- </body>
- </html> -->
- <!--[if !IE]> -->
- <!-- <![endif]-->
- <script type="text/javascript">
- $(function () {
- var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
- var isOpera = userAgent.indexOf("Opera") > -1;
- if (userAgent.indexOf("Chrome") > -1){
- gooleGetIP();
- return "Chrome";
- }
- if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) {
- ieGetIP();
- return "IE";
- };
- });
- function gooleGetIP(){
- function getUserIP(onNewIP) { // onNewIp - your listener function for new IPs
- //compatibility for firefox and chrome
- var myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
- var pc = new myPeerConnection({
- iceServers: []
- }),
- noop = function() {},
- localIPs = {},
- ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g,
- key;
- function iterateIP(ip) {
- if (!localIPs[ip]) onNewIP(ip);
- localIPs[ip] = true;
- }
- //create a bogus data channel
- pc.createDataChannel("");
- // create offer and set local description
- pc.createOffer().then(function(sdp) {
- sdp.sdp.split('\n').forEach(function(line) {
- if (line.indexOf('candidate') < 0) return;
- line.match(ipRegex).forEach(iterateIP);
- });
- pc.setLocalDescription(sdp, noop, noop);
- });
- //sten for candidate events
- pc.onicecandidate = function(ice) {
- if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return;
- ice.candidate.candidate.match(ipRegex).forEach(iterateIP);
- };
- }
- // Usage
- getUserIP(function(ip){
- //alert("Got IP! :" + ip);
- $.ajax({
- url:"${ctx}/system/saveUserLoginIP",
- data:{loginIp:ip},
- type:"post",
- dataType:"json",
- async:false, //同步
- success:function(data){
- console.log(data.data);
- },
- error:function(data){
- alert(data);
- }
- });
- });
- };
- function ieGetIP() {
- }
- </script>
- <object id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></object>
- <object id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></object>
- <script language="JScript">
- var service = locator.ConnectServer();
- var MACAddr;
- var IPAddr;
- var DomainAddr;
- var sDNSName;
- service.Security_.ImpersonationLevel = 3;
- service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
- </script>
- <script language="JScript" event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for="foo">
- /* document.forms[0].txtMACAddr.value = unescape(MACAddr);
- document.all.txtIPAddr.value = unescape(IPAddr);
- document.forms[0].txtDNSName.value = unescape(sDNSName); */
- //alert(unescape(IPAddr));
- $.ajax({
- url:"${ctx}/system/saveUserLoginIP",
- data:{loginIp:unescape(IPAddr)},
- type:"post",
- dataType:"json",
- async:false, //同步
- success:function(data){
- console.log(data.data);
- },
- error:function(data){
- alert(data);
- }
- });
- </script>
- <script language="JScript" event="OnObjectReady(objObject,objAsyncContext)" for="foo">
- if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true) {
- if(objObject.MACAddress != null && objObject.MACAddress != "undefined") {
- MACAddr = objObject.MACAddress;
- }
- if(objObject.IPEnabled && objObject.IPAddress(0) != null && objObject.IPAddress(0) != "undefined") {
- IPAddr = objObject.IPAddress(0);
- }
- if(objObject.DNSHostName != null && objObject.DNSHostName != "undefined") {
- sDNSName = objObject.DNSHostName;
- }
- }
- </script>
在页面获取本地电脑IP的更多相关文章
- 细说Web页面与本地电脑通讯
话说在很久很久以前.Web页面与客户的本地电脑Localhost通讯,有两种方式: 1.Flash 2.ActiveX控件 由于Flash本人不是很了解,也给出不了什么示例代码, 对于ActiveX控 ...
- java Socket 获取本地主机ip
package cn.itcast.net.p1.ip; import java.net.InetAddress;import java.net.UnknownHostException; publi ...
- win、mac系统配置本地电脑ip为域名教程
win系统: 如何修改hosts文件 主机文件原内容如下: #Copyright(c)1993-2009 Microsoft Corp. # #这是Windows的Microsoft TCP / IP ...
- netcore 获取本地网络IP地址
.net framework 下面可以用下面的代码获取到本地网络ip地址.netcore下面这个代码也依然可以用 System.Net.Dns.GetHostName() System.Net.Dns ...
- 获取本地的IP地址(内网)
方法一 public static String getLocalIpAddress() { try { for (Enumeration<NetworkInterface> en = N ...
- C#如何获得本地电脑IP
using System; using System.Collections.Generic; using System.Text; using System.Net; //需要引用.Net命名空 ...
- 查询本地电脑IP地址
使用Windows+R键打开"运行"窗口,然后输入CMD进入命令提示窗口 进入命令窗口之后,输入:ipconfig/all 回车即可看到整个电脑的详细的IP配置信息
- 如何查看本地电脑ip
1.快捷键 win+R打开命令窗口 输入 ipconfig查看你电脑的ip 2.输入netstat -an ,查看当前所有连接端口,显示所有的有效连接信息列表,包括已建立的连接(ESTABLISHED ...
- 获取本地的ip,地址,code
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
随机推荐
- 【oracle】decode函数
DECODE(参数,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) 值1:当参数=值1 翻译值1:想要得到的值 值2:当参数=值2 翻译值2:想要得到的值
- ESA2GJK1DH1K升级篇: 升级STM32 预热: 单片机每隔一定时间 使用 http 获取天气
前言: 实现功能概要: STM32使用AT指令控制Wi-Fi以TCP方式连接服务器(YY天气Web服务器),然后使用http的get协议获取今天的天气数据 单片机提取今天的温度和湿度数据,把温湿度数据 ...
- ajax有哪些方法可以实现跨域?他们都有哪些局限性?
1.服务器端代理:在服务器端设置一个代理,由服务器端向跨域下的网站发出请求,再将请求结果返回给前端. 属于后端的技术,实现起来最麻烦. 2.jsonP,只支持get方式调用. 3.XHR2(cors) ...
- django -- 母版继承
csrf_token 在之前我们提交post请求的时候,都是在setting.py文件里注释掉了 'django.middleware.csrf.CsrfViewMiddleware' 这一行,这是因 ...
- spark基础知识一
1. spark是什么 Apache Spark™ is a unified analytics engine for large-scale data processing. spark是针对于大规 ...
- [Noip2018]填数游戏
传送门 Description 耳熟能详,就不多说了 Solution 对于一个不会推式子的蒟蒻,如何在考场优雅地通过此题 手玩样例,发现对于 \(n=1\) , \(ans=2^m\) .对于 \( ...
- JS中 (function(){...})()立即执行函数
(function(){...})() (function(){...}()) 这是两种js立即执行函数的常见写法. 基本概念: 函数声明:function fname(){...}; 使用funct ...
- C/C++ 交换两个数,不使用第三个变量, 函数模板来实现
#include <iostream> template<typename T> void exchangeTwoNumber(T &t1, T &t2): v ...
- win10系统:VMware无法在Windows运行该怎么办?
出现的问题: 解决方法: 点击“检查更新”或去官网下载最新版本 Vmware15.5.0(经过测试发现,Windows 10上面可以运行Vmware15.5.0 ) VMware Workstati ...
- eclipse&myeclipse 生成jar包后,spring无法扫描到bean定义
问题:eclipse&myeclipse 生成jar包后,spring无法扫描到bean定义 在使用getbean或者扫包时注入bean失败,但在IDE里是可以正常运行的? 原因:导出jar未 ...