java获取linux机器IP

linux机器有多IP的情况,而有时候获取ip就会获取错误。

目前在网络上所找到的几乎所有直接通过java代码获取ip的方法都是有问题的,不能获取想要获得的那个IP。

怎么办呢,目前只能想办法写一个python脚本,然后把获取的ip输入到文件里面,最后java从文件里面读取。

鉴于项目中所有的服务器都会部署一个flume程序,该程序会与远程机器通信,那么就获取该程序的通信状况

netstat -anp |grep 12345 |grep -i established

flume程序占用的端口就是12345。

那么就过滤除了12345这个端口的以外通信信息。

import os

flag=False
while(True):
	val= os.popen('netstat -anp |grep 12345 |grep -i established')
	for temp in val.readlines(): 
		
		if(len(temp.split())>3):
			
			ipPort=temp.split()[3]
			
			if ':' in ipPort:

				ip=ipPort.split(':')[0]
				with open("machineIp.txt","w") as f:
						f.write(ip)
				flag=True
				break
	if(flag==True):
		break
			

这个就将获得的真实机器IP给输出出来了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值