呼入计算机IP地址

问题描述 投票:0回答:1

我正在尝试让Python确定我的计算机IP地址的方法,并且可以用一只手产生奇怪的结果。几个事实,我将Windows 10与Linux子系统(Ubuntu终端应用程序)配合使用,并且正在运行python 3.7.6。

我最初的尝试是使用套接字。即,>

import socket
hostname = socket.gethostname() # outputs a string with the hostname 
ip_address = socket.gethostbyname(hostname) # outputs a string with the relevant IP address

因此,我认为这很有效,直到我尝试在另一台计算机上运行它,并注意到来自我的计算机和另一台计算机的IP地址是相同的。在Windows命令提示符下快速浏览后,发现我的IPv4地址与套接字所调用的完全不同。

我不确定这是什么问题,如果有人知道,我会全神贯注。

我的主要问题是:

如何使用Python调用计算机的唯一IPv4地址?

编辑:

要解决评论中的问题:

最终,我想做的是访问位于两台不同计算机上不同目录中的文件。我正在为正在处理的数据分析项目编写脚本,并使用gitlab跟踪进度。但是,文件路径需要硬编码到脚本中。为了避免每次切换计算机时都要更改路径,我想添加几行内容以进行以下操作:

import socket
hostname = socket.gethostname() # outputs a string with the hostname 
ip_address = socket.gethostbyname(hostname) # outputs a string with the relevant IP address

if ip_address == '127.0.1.1':
    print('Working on desktop1:')
    masked_data = 'file/path/of/desktop/1/mask.pkl'
elif ip_address == 'xxx.yyy.zzz.1':
    print('Working on desktop2:')
    masked_data = 'file/path/of/desktop/2/mask.pkl'

这是暂时的,直到我们启动服务器并运行它,我知道这是一个怪异的解决方法。 ; P

与此有关的问题是,使用套接字时,两台计算机的ip_address相同。我需要做的是获取正在使用的计算机的唯一地址,然后替换循环中的IP地址。

我正在尝试让Python确定我的计算机IP地址的方法,并且可以用一只手产生奇怪的结果。几个事实,我在Windows 10和Linux子系统中使用(...

python sockets ip-address ipv4
1个回答
0
投票

您使用的工具错误。

© www.soinside.com 2019 - 2024. All rights reserved.