使用python try写一个获取主机IP
时间: 2024-02-02 12:03:16 浏览: 22
以下是使用Python try语句获取主机IP的示例代码:
```python
import socket
try:
host_name = socket.gethostname()
host_ip = socket.gethostbyname(host_name)
print("Host Name: ", host_name)
print("Host IP: ", host_ip)
except:
print("Unable to get Host IP")
```
在这个示例中,我们首先导入了Python的socket模块。然后,我们在try语句块中使用gethostname()函数获取主机名,然后使用gethostbyname()函数获取主机IP地址。最后,我们使用print语句输出主机名和主机IP地址。如果try语句块中的代码出现异常,将会执行except语句块中的代码,输出“Unable to get Host IP”消息。
相关问题
写一段远程获取主机ip的代码
以下是Python代码示例,使用socket库实现远程获取主机IP:
```python
import socket
def get_host_ip(remote_host):
try:
# 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect((remote_host, 80))
# 获取本机IP地址
ip = s.getsockname()[0]
except socket.error:
ip = "127.0.0.1"
finally:
s.close()
return ip
# 测试
print(get_host_ip('www.baidu.com'))
```
解释:
1. 导入socket模块。
2. 定义一个名为get_host_ip的函数,接受一个参数remote_host,即要获取IP的远程主机。
3. 在try块中,创建一个socket对象s,并使用connect方法连接到远程主机的80端口。
4. 调用getsockname方法获取本机IP地址,并将其赋值给变量ip。
5. 在except块中,如果发生socket错误,则将IP地址设置为“127.0.0.1”。
6. 最后关闭socket对象s,并返回IP地址。
7. 调用get_host_ip函数,并打印输出结果。
用python写一个扫码局域网主机的程序
您好,我是 CSDN 开发的 C 知道,关于您的问题,我可以回答。以下是用 Python 编写扫描局域网主机的程序:
```python
import socket
import threading
def scan(ip, port):
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(1)
s.connect((ip, port))
print(f"{ip}:{port} is open")
s.close()
except:
pass
def main():
ip_prefix = input("请输入要扫描的 IP 前缀:")
for i in range(1, 255):
ip = f"{ip_prefix}.{i}"
for port in range(1, 1025):
t = threading.Thread(target=scan, args=(ip, port))
t.start()
if __name__ == '__main__':
main()
```
以上程序可以扫描指定 IP 前缀的局域网内的主机,并检测指定端口是否开放。如果开放,则输出该主机的 IP 和端口号。