一、代码实现

import subprocess

import re
import subprocess

from common.logger import logger


def get_device_wifi_address(udid):
    ip_command = f'adb -s {udid} shell ip route'
    result = subprocess.check_output(ip_command, shell=True, text=True)

    # 提取 IP 地址
    ip_address = result.strip('\n').strip(' ').split(' ')[-1]

    # 使用正则表达式验证 IP 地址格式
    ip_pattern = re.compile(r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$')
    if ip_pattern.match(ip_address):
        logger.info(f"Device Wifi IP Address: {ip_address}")
        return ip_address
    else:
        raise Exception(f"Invalid IP address format: {ip_address}")


device_udid = '9YS0220306003185'
ip_address = get_device_wifi_address(device_udid)

if ip_address:
    print(f"Device IP Address: {ip_address}")
else:
    print("Unable to retrieve device IP address.")

二、Demo验证

输出结果:

Device IP Address: 192.168.2.103

欢迎技术交流:
Python封装ADB获取Android设备wifi地址的方法-LMLPHP

12-16 11:46