java下linux和window通用的获取指定网段的本地ip地址(NetworkInterface)

我在工作中需要跨系统的需求,找到了NetworkInterface方法,匹配出192开头的本地网卡地址.


String ipaddress = "";

InetAddress ip = null;
Enumeration<NetworkInterface> netInterfaces = NetworkInterface.getNetworkInterfaces();
while (netInterfaces.hasMoreElements()) {


NetworkInterface ni = (NetworkInterface) netInterfaces.nextElement();


// 遍历所有ip
Enumeration<InetAddress> ips = ni.getInetAddresses();
while (ips.hasMoreElements()) {


//我的需求是匹配192开头的地址
ip = (InetAddress) ips.nextElement();
String fip = ip.toSting();
String sip = fip.subString(1,5);
String cmstr = '192.';
if (sip.equals(cmstr)){


ipaddress = sip.subString(1,fip.length());
}
}


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Java的Socket类来检测网络带宽占有率。在LinuxWindows下都可以使用相同的代码。 以下是一个简单的Java代码示例,用于测量客户端发送和接收数据的速度: ```java import java.io.*; import java.net.*; public class BandwidthTest { public static void main(String[] args) { String serverName = args[0]; int port = Integer.parseInt(args[1]); int bufferSize = Integer.parseInt(args[2]); try { Socket socket = new Socket(serverName, port); byte[] buffer = new byte[bufferSize]; long start = System.nanoTime(); OutputStream outputStream = socket.getOutputStream(); InputStream inputStream = socket.getInputStream(); int count; long total = 0; while ((count = inputStream.read(buffer)) != -1) { total += count; outputStream.write(buffer, 0, count); } long end = System.nanoTime(); long time = end - start; double speedMbps = (total / time) * 8 / 1000000.0; System.out.println("Bandwidth: " + speedMbps + " Mbps"); outputStream.close(); inputStream.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 在该示例,客户端连接到指定的服务器和端口,使用指定大小的缓冲区发送和接收数据。最终,代码会计算传输所需的时间,并计算带宽占用率(以 Mbps 为单位)。 你可以通过在终端运行以下命令来运行该代码: ``` java BandwidthTest <serverName> <port> <bufferSize> ``` 其,`<serverName>` 是服务器名称,`<port>` 是服务器监听的端口号,`<bufferSize>` 是用于发送和接收数据的缓冲区大小。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值