通过客户端ip获取mac地址
查看IP和MAC地址的命令

查看IP和MAC地址的命令[基于MS]查看MAC地址命令:1、使用ipconfig /all,可以看到具体配置。
(查看IP地址,网关,DNS MAC地址等 )2、如果和局域网中的其它计算机通信过的话,可以用arp -a 命令查看其MAC地址。
3、另外还可以用nbtstat -a [IP] ,不过只能查看某台具体机器的MAC地址(查看其他机器的MAC地址)。
[基于MS]查看IP地址命令:1、使用nbtstat -a,可以显示所有与你电脑相连的所有IP。
2、使用ipconfig /all,可以看到具体配置。
(查看IP地址,网关,DNS MAC地址等 )思科交换机查看MAC命令和查看IP地址命令:查看mac地址:show mac-address-table查看IP地址(二层交换机只能在vlan1上配置IP地址):show int vlan 1[基于MS]其他命令:输入:netstat -na (查看开启端口)输入:net start (查看开启服务)编辑本段CMD外部命令(调用其它程序来实现对对象的操作)1. gpedit.msc-----组策略2. sndrec32-------录音机3. Nslookup-------IP地址侦测器4. explorer-------打开资源管理器5. logoff---------注销命令6. tsshutdn-------60秒倒计时关机命令7. lusrmgr.msc----本机用户和组8. services.msc---本地服务设置9. oobe/msoobe /a----检查XP是否激活10. notepad--------打开记事本11. cleanmgr-------垃圾整理12. net start messenger----开始信使服务13. compmgmt.msc---计算机管理14. net stop messenger-----停止信使服务15. conf-----------启动netmeeting16. dvdplay--------DVD播放器17. charmap--------启动字符映射表18. diskmgmt.msc---磁盘管理实用程序19. calc-----------启动计算器20. dfrg.msc-------磁盘碎片整理程序21. chkdsk.exe-----Chkdsk磁盘检查22. devmgmt.msc--- 设备管理器23. regsvr32 /u *.dll----停止dll文件运行24. drwtsn32------ 系统医生25. rononce -p ----15秒关机26. dxdiag---------检查DirectX信息27. regedt32-------注册表编辑器28. Msconfig.exe---系统配置实用程序29. rsop.msc-------组策略结果集30. mem.exe--------显示内存使用情况31. regedit.exe----注册表32. winchat--------XP自带局域网聊天33. progman--------程序管理器34. winmsd---------系统信息35. perfmon.msc----计算机性能监测程序36. winver---------检查Windows版本37. sfc /scannow-----扫描错误并复原38. taskmgr-----任务管理器(2000/xp/200339. winver---------检查Windows版本40. wmimgmt.msc----打开windows管理体系结构(WMI)41. wupdmgr--------windows更新程序42. wscript--------windows脚本宿主设置43. write----------写字板44. winmsd---------系统信息45. wiaacmgr-------扫描仪和照相机向导46. winchat--------XP自带局域网聊天47. mem.exe--------显示内存使用情况48. Msconfig.exe---系统配置实用程序49. mplayer2-------简易widnows media player50. mspaint--------画图板51. mstsc----------远程桌面连接52. mplayer2-------媒体播放机53. magnify--------放大镜实用程序54. mmc------------打开控制台55. mobsync--------同步命令56. dxdiag---------检查DirectX信息57. drwtsn32------ 系统医生58. devmgmt.msc--- 设备管理器59. dfrg.msc-------磁盘碎片整理程序60. diskmgmt.msc---磁盘管理实用程序61. dcomcnfg-------打开系统组件服务62. ddeshare-------打开DDE共享设置63. dvdplay--------DVD播放器64. net stop messenger-----停止信使服务65. net start messenger----开始信使服务66. notepad--------打开记事本67. nslookup-------网络管理的工具向导68. ntbackup-------系统备份和还原69. narrator-------屏幕“讲述人”70. ntmsmgr.msc----移动存储管理器71. ntmsoprq.msc---移动存储管理员操作请求72. netstat -an----(TC)命令检查接口73. syncapp--------创建一个公文包74. sysedit--------系统配置编辑器75. sigverif-------文件签名验证程序76. sndrec32-------录音机77. shrpubw--------创建共享文件夹78. secpol.msc-----本地安全策略79. syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码80. services.msc---本地服务设置81. Sndvol32-------音量控制程序82. sfc.exe--------系统文件检查器83. sfc /scannow---windows文件保护84. tsshutdn-------60秒倒计时关机命令85. tourstart------xp简介(安装完成后出现的漫游xp程序)86. taskmgr--------任务管理器87. eventvwr-------事件查看器88. eudcedit-------造字程序89. explorer-------打开资源管理器90. packager-------对象包装程序91. perfmon.msc----计算机性能监测程序92. progman--------程序管理器93. regedit.exe----注册表94. rsop.msc-------组策略结果集95. regedt32-------注册表编辑器96. rononce -p ----15秒关机97. regsvr32 /u *.dll----停止dll文件运行98. regsvr32 /u zipfldr.dll------取消ZIP支持99. cmd.exe--------CMD命令提示符100. chkdsk.exe-----Chkdsk磁盘检查101. certmgr.msc----证书管理实用程序102. calc-----------启动计算器103. charmap--------启动字符映射表104. cliconfg-------SQL SERVER 客户端网络实用程序105. Clipbrd--------剪贴板查看器106. conf-----------启动netmeeting107. compmgmt.msc---计算机管理108. cleanmgr-------垃圾整理109. ciadv.msc------索引服务程序110. osk------------打开屏幕键盘111. odbcad32-------ODBC数据源管理器112. oobe/msoobe /a----检查XP是否激活113. lusrmgr.msc----本机用户和组114. logoff---------注销命令115. iexpress-------木马捆绑工具,系统自带116. Nslookup-------IP地址侦测器一,ping它是用来检查网络是否通畅或者网络连接速度的命令。
JAVA如何获取客户端IP地址和MAC地址

JAVA如何获取客户端IP地址和MAC地址本⽂介绍了JAVA如何获取客户端IP地址和MAC地址,分享给⼤家,具体如下:1.获取客户端IP地址public String getIp(HttpServletRequest request) throws Exception {String ip = request.getHeader("X-Forwarded-For");if (ip != null) {if (!ip.isEmpty() && !"unKnown".equalsIgnoreCase(ip)) {int index = ip.indexOf(",");if (index != -1) {return ip.substring(0, index);} else {return ip;}}}ip = request.getHeader("X-Real-IP");if (ip != null) {if (!ip.isEmpty() && !"unKnown".equalsIgnoreCase(ip)) {return ip;}}return request.getRemoteAddr();}为什么不直接使⽤request.getRemoteAddr();⽽要在之前判断两个请求头"X-Forwarded-For"和"X-Real-IP"X-Forwarded-For: client1, proxy1, proxy2, proxy3其中的值通过⼀个逗号+空格把多个IP地址区分开, 最左边(client1)是最原始客户端的IP地址, 代理服务器每成功收到⼀个请求,就把请求来源IP地址添加到右边。
所有我们只取第⼀个IP地址X-Real-IP,⼀般只记录真实发出请求的客户端IP解决⽤localhost访问ip为0:0:0:0:0:0:0:1的问题public String getIp(HttpServletRequest request) throws Exception {String ip = request.getHeader("X-Forwarded-For");if (ip != null) {if (!ip.isEmpty() && !"unKnown".equalsIgnoreCase(ip)) {int index = ip.indexOf(",");if (index != -1) {return ip.substring(0, index);} else {return ip;}}}ip = request.getHeader("X-Real-IP");if (ip != null) {if (!ip.isEmpty() && !"unKnown".equalsIgnoreCase(ip)) {return ip;}}ip = request.getHeader("Proxy-Client-IP");if (ip != null) {if (!ip.isEmpty() && !"unKnown".equalsIgnoreCase(ip)) {return ip;}}ip = request.getHeader("WL-Proxy-Client-IP");if (ip != null) {if (!ip.isEmpty() && !"unKnown".equalsIgnoreCase(ip)) {return ip;}}ip = request.getRemoteAddr();return ip.equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ip;}2.获取客户端MAC地址UdpGetClientMacAddr umac = new UdpGetClientMacAddr(sip);String smac = umac.GetRemoteMacAddr();添加⼀个获取MAC的时间限制final UdpGetClientMacAddr umac = new UdpGetClientMacAddr(sip);//---长时间获取不到MAC地址则放弃ExecutorService exec = Executors.newFixedThreadPool(1);Callable<String> call = new Callable<String>() {public String call() throws Exception {return umac.GetRemoteMacAddr();}};try {Future<String> future = exec.submit(call);String smac = future.get(1000 * 1, LISECONDS);loginMonitor.setMacAddress(smac);} catch (TimeoutException ex) {loginMonitor.setMacAddress("获取失败");("获取MAC地址超时");}// 关闭线程池exec.shutdown();//---需要先获取IP地址作为参数构造⼀个UdpGetClientMacAddrUdpGetClientMacAddr.javapackage monsys.security.controller;import java.io.IOException;import .DatagramPacket;import .DatagramSocket;import .InetAddress;/*** 主机A向主机B发送“UDP-NetBIOS-NS”询问包,即向主机B的137端⼝,发Query包来询问主机B的NetBIOS Names信息。
用JS获取客户端IP地址、MAC和主机名的7个方法汇总

</HTML>
方法二(所有的平台及浏览器):
获取客户端处在网络中的IP,前提是客户得联网。使用的是新浪接口。
代码如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JavaScript获取客户端IP[利用新浪接口]</title>
通过上边的js接口调用就可以判断用于属于哪个城市直接显示该城市的相关信息了对于需要城市切换的网站首次判断用户来源非常有帮助
用JS获取客户端IP地址、MAC和主机名的7个方法汇总
用JS获取客户端IP地址、MAC和主机名的7个方法汇总
今天主要介绍JS获取客户端IP地址、MAC和主机名的7个方法, JS本身是不支持获取IP地址等信息的,本文通过其它方法实现,需要的朋友可以参考。
</script>
//打印截取指定的字段值
<script type="text/javascript" src="/getip.aspx "></script>这个是最简单的
像美团等网站打开的时候,都会自动跳转到我们访问者当前所在的城市,这样极大的提高了返回出用户所在的城市名。
</HEAD>
<BODY>
<script language=javascript>
var WshShell =new ActiveXObject("WScript.Shell");
aspnet获取客户端的MAC地址

获取客户端的MAC地址近日在做一个投票系统中有这样一个需求:为了防止恶意拉票或刷票,需要通过远程客户端的IP地址来获取客户端网卡的MAC地址。
晚上找了很多资料,终于有点收获。
如何取得网卡mac地址,就不得不讲到dos命令:NBTSTAT,下面简单介绍下:1. 具体功能该命令用于显示本地计算机和远程计算机的基于TCP/IPNetBT 协议的NetBIOS 统计资料、NetBIOS 名称表和NetBIOS 名称缓存。
NBTSTAT 可以刷新NetBIOS 名称缓存和注册的Windows Internet 名称服务WINS 名称。
使用不带参数的NBTSTAT 显示帮助。
2. 语法详解nbtstat -a remotename -A IPaddress -c -n -r -R -RR -s -S Interval 3. 参数说明-a remotename 显示远程计算机的NetBIOS 名称表,其中,remote name 是远程计算机的NetBIOS 计算机名称。
NetBIOS 名称表是运行在该计算机上的应用程序使用的NetBIOS 名称列表。
-A IPaddress 显示远程计算机的NetBIOS 名称表,其名称由远程计算机的IP 地址指定以小数点分隔。
-c 显示NetBIOS 名称缓存内容、NetBIOS 名称表及其解析的各个地址。
-n 显示本地计算机的NetBIOS 名称表。
Registered 中的状态表明该名称是通过广播或WINS 服务器注册的。
-r 显示NetBIOS 名称解析统计资料。
在配置为使用WINS 的Windows 计算机上,该参数将返回已通过广播和WINS 解析和注册的名称号码。
-R 清除NetBIOS 名称缓存的内容并从Lmhosts 文件中重新加载带有PRE 标记的项目。
-RR 重新释放并刷新通过WINS 注册的本地计算机的NetBIOS 名称。
-s 显示NetBIOS 客户和服务器会话,并试图将目标IP 地址转化为名称。
知道IP查MAC地址,知道MAC地址查IP

(即在局域网内,知道IP查MAC地址,知道MAC地址查IP)你可以使用arp程序(WINDOWS自带)eg: arp -a 192.168.0.1如果使用程序查的话,你需要去实现一个ARP、RARP协议的软件如果只是查看一下对应关系,可以登陆到以太网交换机上查看IP和MAC之间的对应在Windows9x中,可按如下思路进行:1、建立局域网内IP地址--MAC地址对照表:调用icmp.dll中的IcmpSendEcho函数对一个地址发一个ping操作。
成功后马上调用Iphlpapi.dll中的GetIpNetTable函数来取所有的ARP表,从中找出所关心的MAC地址。
保存IP地址和MAC地址。
依此类推,取得局域网内所有IP地址和MAC地址的对照表。
(可取范围为IPADDR and SUBMASK 子网范围内的对照表)2、做一个查询界面。
Windows2000中,应该可以更简单一些。
因为它支持更多的函数如SendARP。
IP to MAC 较容易:方法1. DOS命令: nbtstat -a IP方法2. DOS命令: ping IP 然后arp -a方法3. 仿照nbtstat,向对方的137端口发数据包,包的内容如下(C代码)BYTE b[50]={0x0,0x00,0x0,0x10,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x43,0x4b,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x0,0x0,0x21,0x0,0x1};(这是发nbtstat命令后用IPMan截获的),对方会向你返回一个数据包,其中有对方的工作组,主机名,用户名,MAC地址。
获取设备信息——获取客户端ip地址和mac地址

获取设备信息——获取客户端ip地址和mac地址1、获取本地IP(有可能是内⽹IP,192.168.xxx.xxx)/*** 获取本地IP** @return*/public static String getLocalIpAddress() {try {Enumeration<networkinterface> en = NetworkInterface.getNetworkInterfaces();while (en.hasMoreElements()) {NetworkInterface ni = en.nextElement();Enumeration<inetaddress> enIp = ni.getInetAddresses();while (enIp.hasMoreElements()) {InetAddress inet = enIp.nextElement();if (!inet.isLoopbackAddress()&& (inet instanceof Inet4Address)) {return inet.getHostAddress().toString();}}}} catch (SocketException e) {// TODO Auto-generated catch blocke.printStackTrace();}return "0";}</inetaddress></networkinterface>2.获取⽹络ip,⽐上述⽅法更加精确,但是要异步执⾏。
public class GetLocalHostIP implements Callable<String>{private GetLocalHostIP(){super();}public static String getIP(){ExecutorService executorService = Executors.newCachedThreadPool();Future<String> localIP = executorService.submit(new GetLocalHostIP());String ip = null;try {ip = localIP.get();}catch (InterruptedException e){e.printStackTrace();}catch (ExecutionException e){e.printStackTrace();}if(ip == null || ip.startsWith("192.168")){return "10.142.92.242";}else{return ip;}}@Overridepublic String call() throws Exception {URL infoUrl = null;String ipLine = "";try {infoUrl = new URL("");BufferedReader in = new BufferedReader(new InputStreamReader(infoUrl.openStream()));ipLine = in.readLine();} catch (Exception e) {try {infoUrl = new URL("/");BufferedReader in = new BufferedReader(new InputStreamReader(infoUrl.openStream()));ipLine = in.readLine();} catch (Exception e2) {e2.printStackTrace();}}return ipLine;}}上述⽅法可以获取ip,但是获取速度较慢,对⽹速要求较⾼。
如何获取网卡的MAC地址

如何获取网卡的MAC地址获取网卡的MAC地址可以通过以下几种方法:1.使用操作系统提供的命令行工具:不同的操作系统提供了不同的命令行工具来获取网卡的MAC地址。
下面分别介绍Windows和Linux操作系统下的方法。
- Windows操作系统:在命令提示符或PowerShell中输入"ipconfig /all"命令,会列出所有网络接口的详细信息,包括MAC地址。
- Linux操作系统:在终端中输入"ifconfig"命令,会列出所有网络接口的详细信息,包括MAC地址。
2.使用编程语言获取:可以使用各种编程语言(如Python、Java、C++等)提供的网络编程库来获取网卡的MAC地址。
下面以Python为例,演示如何通过编程获取网卡的MAC地址:```pythonimport subprocessimport redef get_mac_address(:result = subprocess.run(["ipconfig", "/all"],capture_output=True, text=True)output = result.stdoutmac_pattern = r"Physical Address[ .]*: (.*)"mac_address = re.findall(mac_pattern, output)[0].replace("-", ":")return mac_addressmac = get_mac_addressprint(mac)```这段代码通过执行"ipconfig /all"命令,并使用正则表达式匹配输出中的MAC地址,最终返回网卡的MAC地址。
3.使用网络管理工具:可以使用一些网络管理工具来获取网卡的MAC地址,这些工具通常提供了更丰富的功能和更友好的界面,比如Wireshark、NetCut等。
java实现获取用户的MAC地址

java实现获取⽤户的MAC地址⽅法⼀:将本机地址与局域⽹内其他机器区分开来/*** 根据IP地址获取mac地址* @param ipAddress 127.0.0.1* @return* @throws SocketException* @throws UnknownHostException*/public static String getLocalMac(String ipAddress) throws SocketException,UnknownHostException {// TODO Auto-generated method stubString str = "";String macAddress = "";final String LOOPBACK_ADDRESS = "127.0.0.1";// 如果为127.0.0.1,则获取本地MAC地址。
if (LOOPBACK_ADDRESS.equals(ipAddress)) {InetAddress inetAddress = InetAddress.getLocalHost();// 貌似此⽅法需要JDK1.6。
byte[] mac = NetworkInterface.getByInetAddress(inetAddress).getHardwareAddress();// 下⾯代码是把mac地址拼装成StringStringBuilder sb = new StringBuilder();for (int i = 0; i < mac.length; i++) {if (i != 0) {sb.append("-");}// mac[i] & 0xFF 是为了把byte转化为正整数String s = Integer.toHexString(mac[i] & 0xFF);sb.append(s.length() == 1 ? 0 + s : s);}// 把字符串所有⼩写字母改为⼤写成为正规的mac地址并返回macAddress = sb.toString().trim().toUpperCase();return macAddress;} else {// 获取⾮本地IP的MAC地址try {System.out.println(ipAddress);Process p = Runtime.getRuntime().exec("nbtstat -A " + ipAddress);System.out.println("===process=="+p);InputStreamReader ir = new InputStreamReader(p.getInputStream());BufferedReader br = new BufferedReader(ir);while ((str = br.readLine()) != null) {if(str.indexOf("MAC")>1){macAddress = str.substring(str.indexOf("MAC")+9, str.length());macAddress = macAddress.trim();System.out.println("macAddress:" + macAddress);break;}}p.destroy();br.close();ir.close();} catch (IOException ex) {}return macAddress;}}我们再来看下⽅法⼆:package com.alpha.test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;public class GetMac {/*** java获取客户端⽹卡的MAC地址** @param args*/public static void main(String[] args) {GetMac get = new GetMac();System.out.println("1="+get.getMAC());System.out.println("2="+get.getMAC("127.0.0.1"));}// 1.获取客户端ip地址( 这个必须从客户端传到后台):// jsp页⾯下,很简单,request.getRemoteAddr() ;// 因为系统的VIew层是⽤JSF来实现的,因此页⾯上没法直接获得类似request,在bean⾥做了个强制转换 // public String getMyIP() {// try {// FacesContext fc = FacesContext.getCurrentInstance();// HttpServletRequest request = (HttpServletRequest) fc// .getExternalContext().getRequest();// return request.getRemoteAddr();// } catch (Exception e) {// e.printStackTrace();// }// return "";// }// 2.获取客户端mac地址// 调⽤window的命令,在后台Bean⾥实现通过ip来获取mac地址。