Home > Backend Development > Python Tutorial > How to get the local intranet IP address in Python

How to get the local intranet IP address in Python

PHPz
Release: 2023-04-23 08:31:06
forward
2472 people have browsed it

Method 1

import socket

def get_local_ip_address():
    ip_address = ''
    try:
        # 获取本机主机名
        hostname = socket.gethostname()
        # 获取本机IP
        ip_address = socket.gethostbyname(hostname)
    except:
        pass
    return ip_address
Copy after login

Method 2

import subprocess

def get_local_ip_address():
    ip_address = ''
    try:
        # 获取IP地址
        ip_address = subprocess.check_output(['hostname', '-I']).decode('utf-8').strip()
    except:
        pass
    return ip_address
Copy after login

This method uses the hostname command on the Unix system to obtain the IP address and returns the IP address in string format. If you are using a Windows system, you need to use the ipconfig command. You can pass the correct command in subprocess.check_output to get the IP address on Windows.

import socket

def get_local_ip_address():
    ip_address = ''
    try:
        # 获取IP地址
        ip_address = socket.getaddrinfo(socket.gethostname(), None, family=socket.AF_INET, proto=socket.IPPROTO_TCP)[0][4][0]
    except:
        pass
    return ip_address
Copy after login

This method uses the getaddrinfo function to obtain the IP address of the computer and returns the IP address in string format.

Method three (three-party module)

import netifaces

def get_local_ip_address():
    ip_address = ''
    try:
        # 获取网络接口列表
        interfaces = netifaces.interfaces()
        # 查找第一个非本地回环接口的IP地址
        for interface in interfaces:
            if interface == 'lo':
                continue
            addresses = netifaces.ifaddresses(interface)
            ip_addresses = addresses.get(netifaces.AF_INET)
            if ip_addresses:
                ip_address = ip_addresses[0]['addr']
                break
    except:
        pass
    return ip_address
Copy after login

This method uses the netifaces module to obtain the computer's network interface list and find the IP address of the first non-local loopback interface. It then returns the IP address in string format.

Method 4 (Linux)

If you are running a Python program on a Linux system, you can use the ifconfig command to obtain the intranet IP address. The following is a Python function that can be used on Linux systems:

import subprocess

def get_local_ip_address():
    ip_address = ''
    try:
        # 获取IP地址
        output = subprocess.check_output(['ifconfig']).decode('utf-8')
        lines = output.split('\n')
        for line in lines:
            if 'inet ' in line and not line.startswith('127.0.0.1'):
                ip_address = line.split()[1]
                break
    except:
        pass
    return ip_address
Copy after login

This method uses the subprocess module to run the Linux ifconfig command and extract the IP address from the command output. It returns the IP address in string format.

Please note that this method is only applicable to Linux systems. If you're using a different operating system, use one of the previously mentioned methods to obtain your computer's internal IP address.

Method 5(windows)

import os


def get_local_ip_address():
    ip_address = ''
    try:
        # 获取IP地址
        ipconfig_process = os.popen('ipconfig')
        ipconfig_output = ipconfig_process.read()
        ipconfig_process.close()
        for line in ipconfig_output.split('\n'):
            if 'IPv4' in line:
                ip_address = line.split(': ')[-1]
            break
    except:
        pass
    return ip_address
Copy after login

The above is the detailed content of How to get the local intranet IP address in Python. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:yisu.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template