首页 > 编程语言 >JAVA 和python 多网卡情况下获取正确的IP地址

JAVA 和python 多网卡情况下获取正确的IP地址

时间:2023-07-11 13:56:37浏览次数:34  
标签:JAVA socket python System 网卡 UnknownHostException InetAddress import localHost

要获取内网地址,可以尝试连接到10.255.255.255:1。如果连接成功,获取本地套接字的地址信息就是当前的内网IP。

python实现:

import socket

def extract_ip():
    st = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    try:
        st.connect(('10.255.255.255', 1))
        IP = st.getsockname()[0]
    except Exception:
        IP = '127.0.0.1'
    finally:
        st.close()
    return IP

Java:


import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

/**
 * 网络工具
 * @author jqpeng
 */
public class NetUtils {

    public static void main(String[] args) throws UnknownHostException {
        InetAddress localHost = InetAddress.getLocalHost();
        System.out.println(localHost.getHostAddress());

        System.out.println("----------------下面才是正确的获取方式----------------");
        localHost = getLocalHostExactAddress();
        System.out.println(localHost.getHostAddress());
        // System.out.println(localHost.getHostName());
    }


    public static InetAddress getLocalHostExactAddress() {
        try {
            DatagramSocket socket = new DatagramSocket();
            socket.connect(InetAddress.getByName("10.255.255.255"), 1);
            InetAddress address = socket.getLocalAddress();
            socket.close();
            return address;
        } catch (UnknownHostException | SocketException e) {
            try {
                return InetAddress.getLocalHost();
            } catch (UnknownHostException ex) {
                throw new RuntimeException(ex);
            }
        }
    }

}


标签:JAVA,socket,python,System,网卡,UnknownHostException,InetAddress,import,localHost
From: https://www.cnblogs.com/xiaoqi/p/get-server-ip.html

相关文章

  • DPI-1047Python的exe无法执行问题
    一、序打包运行的exe在其他设备上出现DPI-1047:Cannotlocatea64-bitOracleClientlibrary:Thespecifiedmodulecouldnotbefound.二、解决方法1、安装OracleInstantClient2、配置系统环境Path中添加解压路径如(C:\Users\Administrator\Desktop\instantclient......
  • java如何调用python.py文件并传参
    注意:java调用python.py文件并传参,在windows和linux中使用是不一样的我在windows操作系统中,java调用python文件并传参,是这样写的:完全没问题try{IntegertotalTestCaseCount=0;//传入python文件的参数:StringxmindFilePath,StringtestCaseKeyWo......
  • Java网络编程
    1.ip和端口ip地址InetAddress//因为没有构造方法,所以不能通过new来生成对象,但是可以通过类名来调用类的静态方法InetAddressinetAddress1=InetAddress.getByName("localhost");System.out.println(inetAddress1);InetAddressinetAddress2=I......
  • python setup.py sdist bdist_wheel
    #pythonsetup.pysdistbdist_wheel#twineuploaddist/*importioimportosimportsysfromshutilimportrmtreefromsetuptoolsimportfind_packages,setup,CommandNAME='xgo-pythonlib'DESCRIPTION='PythonLibforXGO2-DOG'URL='h......
  • VMware ESXi 7.0 U3n macOS Unlocker & OEM BIOS 集成网卡驱动和 NVMe 驱动 (集成驱动
    VMwareESXi7.0U3nmacOSUnlocker&OEMBIOS集成网卡驱动和NVMe驱动(集成驱动版)ESXi7U3标准版集成Intel网卡、USB网卡和NVMe驱动请访问原文链接:https://sysin.org/blog/vmware-esxi-7-u3-sysin/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org2023......
  • 520要通过这种方式告白 html+css+javascript canvas桃心代码 可修改 【附完整代码】
    ......
  • Python核对批量下载多个文件时的下载情况
      本文介绍批量下载遥感影像时,利用Python实现已下载影像文件的核对,并自动生成未下载影像的下载链接列表的方法。  批量下载大量遥感影像数据对于GIS学生与从业人员可谓十分常见。然而,对于动辄成千上万景的遥感影像文件,下载过程中可能会出现各类失败问题,且或许在下载软件或工具......
  • 【JAVA开发环境配置】 我也可以让JDK版本来去自由的切换了! 哈哈哈哈 舒服!
    ......
  • python pandas链接mysql数据库报错
    1. ModuleNotFoundError:Nomodulenamed'mysql'需要安装链接驱动,比如 pipinstallmysqlclient#或pipinstallpymysql#或pipinstallmysql-connector-python2.pandas的 pd.read_sql(ad_first_query,conn)报错: executereturnself.connectable.executio......
  • eclipse的java+tomcat配置以及一些异常处理
    真是折磨人,下载版本不匹配、匹配了又配置需要插件、插件下载后安装又出错误,运行时有报莫名其妙的错误……过程错了或者稍微忘了哪里就gg,等到最后还得查运行的bug。一、装jdk、jre,并配置环境变量系统变量→新建JAVA_HOME变量。系统变量→寻找Path变量→编辑,在变量值最后输入%JA......