So erhalten Sie die lokale Intranet-IP-Adresse in Python

PHPz
Freigeben: 2023-04-23 08:31:06
nach vorne
2413 Leute haben es durchsucht

Methode 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
Nach dem Login kopieren

Methode 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
Nach dem Login kopieren

Diese Methode verwendet den Hostnamen-Befehl auf dem Unix-System, um die IP-Adresse abzurufen und gibt die IP-Adresse im String-Format zurück. Wenn Sie ein Windows-System verwenden, müssen Sie den Befehl ipconfig verwenden. Sie können den richtigen Befehl in subprocess.check_output übergeben, um die IP-Adresse unter Windows abzurufen.

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
Nach dem Login kopieren

Diese Methode verwendet die Funktion getaddrinfo, um die IP-Adresse des Computers abzurufen und gibt die IP-Adresse im String-Format zurück.

Methode Drei (Drei-Parteien-Modul)

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
Nach dem Login kopieren

Diese Methode verwendet das Netifaces-Modul, um die Netzwerkschnittstellenliste des Computers abzurufen und die IP-Adresse der ersten nicht-lokalen Loopback-Schnittstelle zu finden. Anschließend wird die IP-Adresse im String-Format zurückgegeben.

Methode 4 (Linux)

Wenn Sie ein Python-Programm auf einem Linux-System ausführen, können Sie den Befehl ifconfig verwenden, um die Intranet-IP-Adresse abzurufen. Hier ist eine Python-Funktion, die auf Linux-Systemen verwendet werden kann:

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
Nach dem Login kopieren

Diese Methode verwendet das Unterprozessmodul, um den Linux-Befehl ifconfig auszuführen und die IP-Adresse aus der Befehlsausgabe zu extrahieren. Es gibt die IP-Adresse im String-Format zurück.

Bitte beachten Sie, dass diese Methode nur auf Linux-Systemen funktioniert. Wenn Sie ein anderes Betriebssystem verwenden, verwenden Sie eine der zuvor genannten Methoden, um die interne IP-Adresse Ihres Computers zu ermitteln.

Methode 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
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo erhalten Sie die lokale Intranet-IP-Adresse in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage