当前位置:首页 » 编程语言 » python获取本机地址

python获取本机地址

发布时间: 2022-08-24 05:13:26

‘壹’ 如何用python获取本机ip

import socket
localIP = socket.gethostbyname(socket.gethostname())#得到本地ip
print "local ip:%s "%localIP

‘贰’ Python怎么取到本机所有安装的软件

windows系统会在两个地方记录软件列表:
64位:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
32位:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
这两个注册表存储的软件会重复,所以我们还要去重
我们使用python的标准库_winreg来获取软件安装列表,并输出到文件中,代码如下:
#!/usr/bin/python

import os
import socket
import _winreg

#将软件安装列表输出到网盘上
os.system(r'net use p: \\10.0.0.6\public password /user:Lc\tanjun')

#使用主机名命名软件安装列表
hostname = socket.gethostname()
file = open(r'P:\todo\temp\%s.txt' % hostname, 'a')

#需要遍历的两个注册表
sub_key = [r'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall', r'SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall']

software_name = []

for i in sub_key:
    key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, i, 0, _winreg.KEY_ALL_ACCESS)
    for j in range(0, _winreg.QueryInfoKey(key)[0]-1):
        try:
            key_name = _winreg.EnumKey(key, j)
            key_path = i + '\\' + key_name
            each_key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, key_path, 0, _winreg.KEY_ALL_ACCESS)
            DisplayName, REG_SZ = _winreg.QueryValueEx(each_key, 'DisplayName')
            DisplayName = DisplayName.encode('utf-8')
            software_name.append(DisplayName)
        except WindowsError:
            pass

#去重排序
software_name = list(set(software_name))
software_name = sorted(software_name)

for result in software_name:
    file.write(result + '\n')

‘叁’ python 怎么获取本机的外网ip

>>> import socket
>>> hostname = socket.gethostname()
>>> print hostname
LuciferYang.local
>>> ip = socket.gethostbyname(hostname)
>>> print ip
10.101.8.171
>>> ipList = socket.gethostbyname_ex(hostname)
>>> print ipList
('luciferyang.local', [], ['10.101.8.171'])

理论上,不是服务器的话不用有直接外网IP到机器,办公室环境或者家庭环境都是局域网环境,外网IP都在路由器上面

‘肆’ python flask 怎么默认访问地址是本机地址

1、方法

flask运行服务器后,会发现只有你自己的电脑可以使用服务,而网络中的其他电脑却不行。
缺省设置就是这样的,因为在调试模式下该应用的用户可以执行你电脑中的任意
Python 代码。

关闭调试或信任你网络中的用户,那么可以让服务器被公开访问。只要像这样改变 run() 方法的调用:

app.run(host='0.0.0.0', port=80)
2、说明

app.run(host='0.0.0.0', port=80)
此代码可以让主机通过本机IP和80端口访问服务器。
3、函数说明

run(host=None, port=None, debug=None, **options)
在本地开发服务器上运行应用程序。 如果调试标志被设置,服务器将自动重新加载代码更改,并显示一个调试器,以防发生异常。
如果要以调试模式运行应用程序,但禁用交互式调试器上的代码执行,则可以将use_evalex = False作为参数传递。 这将使调试器的追溯屏幕保持活动,但禁用代码执行。

‘伍’ python怎么获取本机ip

importsocket
defget_ip():
s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
try:
#doesn'tevenhavetobereachable
s.connect(('10.255.255.255',0))
IP=s.getsockname()[0]
except:
IP='127.0.0.1'
finally:
s.close()
returnIP

linux、windows均测试通过

‘陆’ python怎么获取本机ip

第一种:
复制代码代码如下:
import
socket
import
fcntl
import
struct
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])
)[20:24])
#get_ip_address('lo')环回地址
#get_ip_address('eth0')主机ip地址

‘柒’ 如何使用python获取本机网关和dns服务器

window环境下 没有研究过 ubuntu 下 ,我试过的法子是: 网关: import netifaces as ni gws = ni.gateways() DNS: 直接在ubuntu的配置DNS文件取 /etc/resolvconf/ 下相关文件 格式类似: nameserver 144.144.144.144 nameserver 8.8.8.8

‘捌’ python 为什么是127.0.0.1

python不是127.0.0.1
127.0.0.1是默认的本机IP地址,换句话说,不管当前电脑是否联网,实际IP如何,都可以用127.0.0.1表示本机地址。

‘玖’ 为什么用python获取mac地址会变动

首先声明,我本人还没有研究出来问题的究竟。此处只是写下我本人的一点小心得,大家一起进步。

因为我发现,使用uuid库得到的mac地址,总有最后一位不对。所以,我就查看了python官方的uuid文档,找到了问题的关键是调用UUID()的时候,会调用getnode()函数以得到物理地址。

这个是getnode()函数的定义:

我把它摘出来,考到下面。

def getnode(*, getters=None):
"""Get the hardware address as a 48-bit positive integer.

The first time this runs, it may launch a separate program, which could
be quite slow. If all attempts to obtain the hardware address fail, we
choose a random 48-bit number with its eighth bit set to 1 as recommended
in RFC 4122.
"""
global _node
if _node is not None:
return _node

if sys.platform == 'win32':
getters = _NODE_GETTERS_WIN32
else:
getters = _NODE_GETTERS_UNIX

for getter in getters + [_random_getnode]:
try:
_node = getter()
except:
continue
if (_node is not None) and (0 <= _node < (1 << 48)):
return _node
assert False, '_random_getnode() returned invalid value: {}'.format(_node)


我正在试图通过研究这个问题来试图研究。但同样,我觉得我们可以直接让python调用系统库,从而执行系统自带的命令:(类似于windows下cmd里面"ipconfig -all"命令,或者ubuntu下terminal中"ifconfig"命令)。实现物理地址。之后,根据“短时间内该机器的网卡不会出现过大的变动这个前提”,我们可以根据返回内容,切片出我们需要的部分即可。

热点内容
python查看进程 发布:2024-05-19 22:59:37 浏览:157
androidhtml颜色 发布:2024-05-19 22:58:34 浏览:846
米3系统存储和内存设备 发布:2024-05-19 22:50:50 浏览:213
途乐有哪些越野配置 发布:2024-05-19 22:49:53 浏览:672
php检测变量 发布:2024-05-19 22:45:31 浏览:321
结构与算法 发布:2024-05-19 22:32:22 浏览:587
ubuntuphp版本 发布:2024-05-19 21:59:12 浏览:928
解压文案馆 发布:2024-05-19 21:58:54 浏览:870
苏宁访问数 发布:2024-05-19 21:53:49 浏览:580
湿地下载ftp 发布:2024-05-19 21:46:10 浏览:487