首页 > 其他分享 >获取IPV4或IPV6地址

获取IPV4或IPV6地址

时间:2024-10-10 17:00:46浏览次数:6  
标签:ip 获取 地址 IPV4 && IPV6 inetAddress ipv4 ipButton

 1 public String getPodIp() {
 2     try {
 3         String ipButton = Application.getProperty("ipButton", "ipv4");
 4         Enumeration < NetworkInterface > networkInterfaces = NetworkInterface.getNetworkInterfaces();
 5         while (networkInterfaces.hasMoreElements()) {
 6             Enumeration < InetAddress > inetAddresses = networkInterfaces.nextElement().getInetAddresses();
 7             while (inetAddresses.hasMoreElements()) {
 8                 InetAddress inetAddress = inetAddresses.nextElement();
 9                 if ("ipv4".equals(ipButton)) {
10                     if (!inetAddress.isLoopbackAddress() 
11                         && inetAddress instanceof Inet4Address 
12                         && !StringUtils.contains(inetAddress.getHostAddress(), ":")) {
13                         return inetAddress.getHostAddress();
14                     }
15                 }
16                 if ("ipv6".equals(ipButton)) {
17                     if (!inetAddress.isLoopbackAddress() 
18                         && !inetAddress.isAnyLocalAddress() 
19                         && !inetAddress.isLinkLocalAddress() 
20                         && inetAddress instanceof Inet6Address) {
21                         String ip = inetAddress.getHostAddress();
22                         int index = ip.indexOf("%");
23                         if (index > 0) {
24                             ip = ip.substring(0, index);
25                         }
26                         return ip;
27                     }
28                 }
29             }
30         }
31     } catch (SocketException e) {
32         LOGGER.error("获取IP地址出现异常..:", e);
33     }
34     return "";
35 }
  1. 上述代码可在虚机或容器环境下获取主机ip或pod ip
  2. 根据配置需要获取ipv4或ipv6地址(需要提前知道系统配置的是ipv4或ipv6地址)


 

如果有获取服务端口需要可通过下面方式获取:(这种方式适用springboot项目。如果是容器环境,要求通过环境变量设置了server.port才能获取的到。)

1 System.getProperty("server.port");

 

标签:ip,获取,地址,IPV4,&&,IPV6,inetAddress,ipv4,ipButton
From: https://www.cnblogs.com/ZT-SummerRain/p/18456740

相关文章

  • 浏览器报错 | 代理服务器可能有问题,或地址不正确
    问题描述Windows连网情况下,浏览器访问地址显示“你尚未连接,代理服务器可能有问题,或地址不正确。”解决方法电脑右下侧的WiFi图标右键,打开网络和Internet设置打开代理打开自动设置代理的“自动检测设置”关闭手动设置代理的“使用代理服务器”这样就可以正......
  • 查询网站后台登录地址
    查询网站后台登录地址通常涉及对网站结构的理解以及一些技术手段的应用。以下是一些可能的方法:直接访问常见路径:许多网站使用标准的后台路径,如 /admin、/administrator、/wp-admin(WordPress)、/login、/management 等。你可以尝试直接在网站域名后面加上这些路径看是否能够访......
  • 如何查看宝塔面板登录地址
    宝塔面板的登录地址通常是在安装完成后自动设置的,可以通过以下步骤来查看或确认宝塔面板的登录地址:检查安装提示:如果您刚刚安装了宝塔面板,安装脚本通常会在安装完成后直接显示登录地址和端口号。通过命令行查看:打开服务器上的命令行工具。输入命令 bt 后回车,这将进......
  • asp.net c#获取内部网关地址
    在ASP.NET中获取内部网关地址,可以使用NetworkInterface类来获取所有网络接口的信息,然后找到默认网关的IP地址。以下是一个示例代码:usingSystem;usingSystem.Net;usingSystem.Net.NetworkInformation;publicclassProgram{publicstaticvoidMain(){......
  • 获取公网IP地址
    获取公网IP地址通常需要通过外部服务,因为本地代码无法直接得知其公网IP。你可以使用HTTP请求访问提供公网IP的服务。usingSystem;usingSystem.Net.Http;usingSystem.Threading.Tasks;publicclassProgram{publicstaticasyncTaskMain(){string......
  • 中国移动宽带 IPv6 连接到公网,家庭宽带设置服务器(2024年10月)
    摘要:1、中国移动的宽带,已经支持IPv6,需要宽带光猫上做好设置。2、需要从中国移动的服务器上获取公网IPv6地址。 操作:1、确保宽带WAN连接的前缀获取方式:PrefixDelegation网关的默认登录用户名(user)、密码,在设备的背面有写着。 如果不是,就联系客服,询问宽带终端的超级......
  • IPv6详细记录
    一、地址格式书写方式:    使用“:”分隔,16进制表示,共有8组    地址总长为128bit,每一组16bit,也就是4个十六进制的数(四个二进制数表示一个十六进制数)编写格式:    可以省略每一组的前导0    如果一组所有位都为0可以化简为单个0,如果出现连......
  • 常见的公共 DNS 服务器地址有:谷歌 DNS:8.8.8.8 和 8.8.4.4阿里云 DNS:223.5.5.5 和 223.
    常见的公共DNS服务器地址有:谷歌DNS:8.8.8.8和8.8.4.4阿里云DNS:223.5.5.5和223.6.6.6腾讯DNS:119.29.29.29和182.254.116.116阿里公共DNS:IPv4:223.5.5.5、223.6.6.6IPv6:2400:3200::1、2400:3200:baba::1腾讯公共DNS(DNSPod):IPv4:119.29.29.29IPv6:2402:4e00::百......
  • 华为路由器配置IPV4和IPV6局域网示例
    设计架构图及IP地址如下:PC1和PC2通过DHCP和DHCPV6获取IPV4和IPV6地址,实现图内的所有设备IPV4和IPV6全部互通。1、IPV4配置:R2配置:<Huawei>system-viewEntersystemview,returnuserviewwithCtrl+Z.[Huawei]sysnameR2[R2]interfaceGigabitEthernet0/0/0......
  • 理解值传递,地址传递和引用传递
    转载:https://blog.csdn.net/weixin_44309097/article/details/124086049#:~:text=在c++中,有三种主值传递传递的仅仅是值:voidswap(intx,inty){inttmp=x;x=y;y=tmp;cout<<x<<y<<endl;}intmain(){inta=4,b=6;swap(a,b);cout<<a<<......