package com.cn;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
public class Test001 {
/**
* 获取本机所有IP
*/
private static String[] getAllLocalHostIP() {
List<String> res = new ArrayList<String>();
Enumeration netInterfaces;
try {
netInterfaces = NetworkInterface.getNetworkInterfaces();
InetAddress ip = null;
while (netInterfaces.hasMoreElements()) {
NetworkInterface ni = (NetworkInterface) netInterfaces
.nextElement();
Enumeration nii = ni.getInetAddresses();
while (nii.hasMoreElements()) {
ip = (InetAddress) nii.nextElement();
if (ip.getHostAddress().indexOf(":") == -1) {
res.add(ip.getHostAddress());
System.out.println("本机的ip=" + ip.getHostAddress());
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
return (String[]) res.toArray(new String[0]);
}
/**
* 获取本机所有物理地址
*
* @return
*/
public static String getMacAddress() {
String mac = "";
String line = "";
String os = System.getProperty("os.name");
if (os != null && os.startsWith("Windows")) {
try {
String command = "cmd.exe /c ipconfig /all";
Process p = Runtime.getRuntime().exec(command);
BufferedReader br = new BufferedReader(new InputStreamReader(p
.getInputStream()));
while ((line = br.readLine()) != null) {
if (line.indexOf("Physical Address") > 0) {
int index = line.indexOf(":") + 2;
mac = line.substring(index);
break;
}
}
br.close();
} catch (IOException e) {
}
}
return mac;
}
public String getMacAddress(String host) {
String mac = "";
StringBuffer sb = new StringBuffer();
try {
NetworkInterface ni = NetworkInterface.getByInetAddress(InetAddress
.getByName(host));
byte[] macs = ni.getHardwareAddress();
for (int i = 0; i < macs.length; i++) {
mac = Integer.toHexString(macs[i] & 0xFF);
if (mac.length() == 1) {
mac = '0' + mac;
}
sb.append(mac + "-");
}
} catch (SocketException e) {
e.printStackTrace();
} catch (UnknownHostException e) {
e.printStackTrace();
}
mac = sb.toString();
mac = mac.substring(0, mac.length() - 1);
return mac;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Test001.getAllLocalHostIP();
System.out.println(Test001.getMacAddress());
}
}
运行结果:
本机的ip=127.0.0.1
本机的ip=10.15.3.143
00-13-72-78-A3-8C
分享到:
相关推荐
首先,程序可能会使用`InetAddress`类获取本地IP和广播IP,然后通过`Socket`类尝试与局域网内的所有IP地址建立连接,以此判断哪些地址是可达的。同时,程序可能监听网络流量,分析ARP请求和响应包,检查是否存在异常...
以下是一个简单的示例代码,展示了如何使用JAVA获取本机的IP和MAC地址: ```java import java.net.*; import java.util.Enumeration; public class Get_PC_Info { public static void main(String[] args) throws...
以下是一些关于如何在Java环境下获取客户端IP和MAC地址的知识点。 首先,获取客户端IP地址通常涉及到服务器端的编程。在Java中,可以通过`java.net`包中的`Socket`或`HttpServletRequest`类来获取。当客户端发起...
如果只需要获取本地机器的MAC地址,第一种方法更为简单且直接;如果需要查询远程设备的MAC地址,第二种方法可能更适合,但需要注意兼容性和效率问题。在使用第二种方法时,务必确保正确处理各种异常和编码问题,以免...
例如,我们可以使用`getByName`方法获取指定主机名或IP地址的InetAddress对象,或者使用`getLocalHost`方法获取本地主机的InetAddress。InetAddress提供了`getHostAddress`方法来获取IP地址字符串形式,以及`get...
在这种模式下,Spring可以通过简单的JNDI名称查找来获取数据源,而无需指定任何连接细节如用户名、密码或IP地址和端口号等。这种方式的优点是简单且易于配置。 **配置示例** 在Spring配置文件中,可以通过`org....
包括获取内存,机器名,IP,物理内存,等相关信息
Spring Boot应用可以通过Java的`java.net.NetworkInterface`类获取本地系统的MAC地址,并结合自定义的服务或组件进行匹配检查。 接着是IP地址校验。IP地址是网络通信的基础,通过IP地址可以识别网络上的特定设备。...
早期网络技术仅限于本地网络中的机器命名,而Java则着眼于全球互联网的规模,引入了IP地址和域名系统(DNS)来解决这一问题。IP地址作为网络设备的数字标识,DNS则提供了一种将人类可读的域名转换为IP地址的服务,从而...
- **Python**: 使用`psutil`库可以获取本地MAC地址,而`socket`库配合`arp`命令可以尝试获取远程主机的MAC地址。 - **Java**: 可以使用`java.net.NetworkInterface`类获取MAC地址。 - **C#**: 利用`.NET`框架的`...
在编程领域,网络库如Python的socket模块、Java的Socket类等,提供了API来创建和管理网络连接,包括设置和读取IP地址和端口号。开发者可以利用这些工具实现客户端-服务器架构,使应用程序能够跨设备通信。 总的来说...
Java中的`InetAddress`类是用来封装和操作IP地址的,它可以解析主机名、获取本地主机IP地址、测试IP地址的可达性等。 **14.3 套接字(Socket)** 套接字是网络通信中的基本概念,它是两台机器间通信的端点。在网络...
- **可移植性**:容器可以在不同的物理机器或云环境中移动而不影响运行。 - **隔离性**:容器内的应用彼此隔离,互不干扰。 ### 容器与虚拟机的区别 容器和虚拟机都是隔离应用的技术,但是容器的隔离是在操作系统...
在Java中,`InetAddress`类是用来处理IP地址的,它可以获取主机名、IP地址等信息。例如,`getByName(String host)`方法用于根据主机名获取InetAddress对象,`getLocalHost()`方法则返回本地主机的InetAddress对象。 ...
1. **查阅本机IP地址**:在命令行界面(CLI)中,通过运行`ipconfig`命令,可以获取计算机的IP地址信息。这有助于理解网络中的设备如何通过IP地址进行通信。 2. **测试连通性**:使用`ping 127.0.0.1`命令检查本地...
MAC地址(物理地址)则可以通过`getHardwareAddress()`获取,但不是所有平台都支持。 4. **SocketTesting项目**: - 根据项目名“SocketTesting”,我们可以推测这是一个用于测试Socket连接的工具,可能包含客户端...
6. 计算机系统内部的总线分为控制总线、数据总线和地址总线,它们是计算机内部数据传输的通道。 7. 主存储器由只读存储器(ROM)和随机读取存储器(RAM)组成,RAM用于临时存储运行中的数据。 8. 计算机的基本构造由运算...
所有的数据和指令在计算机内部都是以二进制形式存储和处理的。 #### 操作系统(Operating System,OS) 管理计算机硬件与软件资源,控制程序运行的基本系统软件。常见的操作系统包括Windows、macOS、Linux等。 ###...
- **IP地址**:IP地址是互联网上的设备独一无二的标识,例如127.0.0.1代表本地主机。 - **端口**:端口是通信的入口,用于区分同一台机器上不同服务。它们是16位的数字,范围是0到65535。 - **协议**:通信双方...