相关疑难解决方法(0)

使用Python的stdlib查找本地IP地址

如何在Python平台中独立地找到本地IP地址(即192.168.xx或10.0.xx)并仅使用标准库?

python networking ip-address

514
推荐指数
23
解决办法
62万
查看次数

获取MAC地址

我需要一种在运行时确定计算机MAC地址的跨平台方法.对于Windows,可以使用'wmi'模块,我可以找到Linux下唯一的方法是运行ifconfig并在其输出中运行正则表达式.我不喜欢使用只能在一个操作系统上运行的软件包,而解析另一个程序的输出似乎并不优雅,更不用说容易出错了.

有谁知道跨平台方法(windows和linux)方法来获取MAC地址?如果没有,有没有人知道比我上面列出的更优雅的方法?

python linux windows networking

102
推荐指数
8
解决办法
13万
查看次数

如何在Python中使用socket作为上下文管理器?

看起来像做以下事情是很自然的:

with socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
Run Code Online (Sandbox Code Playgroud)

但Python没有为socket实现上下文管理器.我可以轻松地将其用作上下文管理器,如果是,如何使用?

python sockets contextmanager

41
推荐指数
2
解决办法
2万
查看次数

使用Python从设备获取MAC地址

我正在寻找一种方法(使用python)从本地网络上的设备获取第二层地址.第三层地址是已知的.

目标是构建一个脚本,定期轮询IP地址数据库,确保mac地址没有改变,如果有,则向我自己发送电子邮件警报.

python mac-address ip-address

19
推荐指数
2
解决办法
5万
查看次数

解析ifconfig只使用Bash获取我的IP地址

我想编辑bashrc文件,以便运行一个名为"myip"的简单函数.正如您可能猜到的,函数myip只打印我机器的内部IP地址.

我工作的时候,这是脚本:

ifconfig en1 | awk '{ print $2}' | sort
Run Code Online (Sandbox Code Playgroud)

这得到了我的输出:

10.0.0.12
options=1<PERFORMNUD>
flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST>
fe80::daa2:5eff:fe96:ba2f%en1
d8:a2:5e:96:ba:2f
autoselect
active
Run Code Online (Sandbox Code Playgroud)

我正在使用Mac OS X.

我怎么能这样做?

macos bash awk ifconfig

15
推荐指数
6
解决办法
4万
查看次数

如何在linux下获取接口的IPv6地址

你知道我如何在python2.6中获得我的一个接口的IPv6地址之一.我尝试了一些套接字模块,这让我无处可去.

谢谢.

python linux ipv6

6
推荐指数
1
解决办法
2481
查看次数

从python获取IP地址

我正在尝试获取与网络接口关联的 IP 地址,而无需在 Linux 中生成其他进程:

def get_ip_address(ifname):
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    return socket.inet_ntoa(fcntl.ioctl(
        s.fileno(), 0x8915,  # SIOCGIFADDR
        struct.pack('256s', ifname[:15].encode('utf-8'))
        )[20:24])
Run Code Online (Sandbox Code Playgroud)

但总是收到这个错误:

struct.pack('256s', ifname[:15].encode('utf-8'))
OSError: [Errno 99] Cannot assign requested address
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

linux ip python-3.x

6
推荐指数
1
解决办法
1万
查看次数

获取 127.0.1.1 而不是 192.168.1.* ip ubuntu python

我是python的新手。我想获取系统的IP地址。我在局域网中连接。当我使用以下代码获取 ip 时,它显示 127.0.1.1 而不是 192.168.1.32。为什么它不显示 LAN ip。那么我怎样才能得到我的局域网 ip。每个教程仅以这种方式显示。我还通过连接移动热点进行了检查。尽管如此,它显示的是相同的。

import socket    
hostname = socket.gethostname()    
IPAddr = socket.gethostbyname(hostname)    
print("Your Computer Name is:" + hostname)    
print("Your Computer IP Address is:" + IPAddr)    
Run Code Online (Sandbox Code Playgroud)

输出:

Your Computer Name is:smackcoders
Your Computer IP Address is:127.0.1.1
Run Code Online (Sandbox Code Playgroud)

所需输出:

Your Computer Name is:smackcoders
Your Computer IP Address is:192.168.1.32
Run Code Online (Sandbox Code Playgroud)

python sockets python-3.x python-sockets

4
推荐指数
3
解决办法
5170
查看次数

sock.getsockname()[1] 中的“[1]”是什么?

我正在用 Python 进行套接字编程,我看到了这个:

sock.getsockname()[1]

谁能解释一下这是做什么[1]用的吗?

python sockets

-2
推荐指数
1
解决办法
5346
查看次数