首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IP地址的可用性- Python

IP地址的可用性- Python
EN

Stack Overflow用户
提问于 2011-02-17 10:33:24
回答 3查看 4.5K关注 0票数 1

如何在python中检查IP地址的可用性?

例如,我不想将系统的IP地址更改为192.168.112.226,静态地覆盖dhcp提供的地址。默认网关为192.168.112.1。但我不想在赋值给自己之前检查是否有人在使用192.168.112.226。

通常在bash的命令行中执行此操作。我检查ping 192.168.112.226。如果主机无法访问,我会使用'ifconfig‘和'route’将其分配给自己。

如何使用python自动执行此操作?

PS:我更喜欢python,这样无论成功还是失败,我都可以使用python-notify来美化输出。

EN

回答 3

Stack Overflow用户

发布于 2011-04-13 05:50:30

这在很多方面都很糟糕,我甚至无法解释这有多糟糕。

你为什么想要这个?你能告诉我们吗,我们可以想出一个比这个令人难以置信的“解决方案”更好的答案?

如果你有一个Linux/Unix系统,你可以让你的DHCP客户机请求DHCP服务器给你一个特定的IP地址,如果DHCP服务器知道它是空闲的。如何做到这一点取决于发行版。

我认为你的“解决方案”会带来两个问题。

  • 正如其他一些人所写的,你可以检查IP现在是“空闲的”,但是拥有该IP地址的机器可能会在你的测试之后立即启动。使用您绑架的IP地址。
  • 如果DHCP服务器不知道您绑架了IP地址,它可能会将其提供给其他人。

无论它会破坏那台计算机和你的网络,产生大量的工作,并且可能会激怒网络管理员。你不想这样,对吧?

票数 1
EN

Stack Overflow用户

发布于 2011-02-17 10:43:50

好的,如果你想使用bash,你可以导入os模块或子进程模块。

例如:

代码语言:javascript
复制
import os
command = os.system('pint 192.168.112.226')
if command == 0: #Sucess
    #write os.system() and give it ifconfig and route commands as parameter.
else: print "This IP is used by another person in your network."

您可以在python中阅读有关os.system和子流程的更多信息,例如,通过导入它们并编写help(subprocess)

票数 0
EN

Stack Overflow用户

发布于 2011-02-17 15:57:54

您可以使用socket.gethostbyaddr()来确定IP地址是否正在使用中。

代码语言:javascript
复制
import sys, os, socket

# Stores the IP Address
ip_address = sys.argv[1]

try:
    socket.gethostbyaddr(ip_address)
    # If previous line doesn't throw exception, IP address is being used by someone
    print "No"
except socket.herror:
    # socket.gethostbyaddr() throws error, so IP is not being used at present
    # You can write os.system() and give it ifconfig and route commands as parameter.
    print "Yes"

这段代码的问题是,如果网络上没有使用IP地址,method.gethostbyaddr()会花费大量时间抛出socket.herror。

如果您将此脚本命名为isIPAvailable.py,则可以通过以下方式调用它:

代码语言:javascript
复制
python isIPAvailable.py 192.168.112.226
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5024478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档