【python】获取URL_IP

获取URL_IP

推荐

# pip install dnspython
import dns.resolver
domain="taobao.com"
A=dns.resolver.resolve(domain,"A")
for a in A.response.answer:
    for aa in a.items:
        print(aa.address)

方法一 requests:

import requests

srarch_url = "http://www.baidu.com"
url_ip = requests.get(seach_url, stream=True)
print(, f'查询url --> {srarch_url} ',
f'对应 ip --> {url_ip.raw._connection.sock.getpeername()[0]}')

方法二 socket:

import socket

# 查看当前主机名
print('当前主机名称为 : ' + socket.gethostname())

# 根据主机名称获取当前IP
print('当前主机的IP为: ' + socket.gethostbyname(socket.gethostname()))

# 下方代码为获取当前主机IPV4 和IPV6的所有IP地址(所有系统均通用)
addrs = socket.getaddrinfo(socket.gethostname(), None)

for item in addrs:
    print(item)

# 仅获取当前IPV4地址
print('当前主机IPV4地址为:' + [item[4][0] for item in addrs if ':' not in item[4][0]][0])

# 同上仅获取当前IPV4地址
for item in addrs:
    if ':' not in item[4][0]:
        print('当前主机IPV4地址为:' + item[4][0])
        break

优化后

def get_url_ip():
	""" 获取 ip """
    srarch_url = "http://www.baidu.com"
    res = requests.get(srarch_url, stream=True)
    url_ip = res.raw._connection.sock.getpeername()[0]
    print(f'查询url --> {srarch_url} ',
          f'对应 ip --> {res.raw._connection.sock.getpeername()[0]}')
    return url_ip


def stop_py():
	""" 停止运行 """
    import sys
    sys.exit('测试URL 环境错误  --> 程序终止')
    # 该方法中包含一个参数status,默认为0,表示正常退出,也可以为1,表示异常退出。


def check_path():
	""" 判断环境 """
    get_ip = get_url_ip()
    print('获取', get_ip)
    path_dev = '220.181.38.150'
    path_test = '220.181.38.149'
    path_release = '220.181.38.150'
    if get_ip == path_dev:
        print('develop URL')
    elif get_ip == path_test:
        print('test URL')
        stop_py()
    elif get_ip == path_release:
        print("release URL")
    else:
        print('unknow path')


check_path()

说明

使用 sys.exit(),直接退出程序,但是会引发一个 SystemExit 异常;

  • 该方法包含一个 status 参数 (常用

    • sys.exit(0),0 表示支持退出
    • sys.exit(1),1 表示异常退出

    这个SystemExit异常,是唯一一个不会被认为是错误的异常,当没有设置异常捕获的话,是不会有报错的,可以进行正常退出,当然也可以捕获这个异常进行一些其他操作。

import sys

# sys.exit()
# sys.exit(0)
# sys.exit(1)
try:
    sys.exit(1)
except SystemExit as err:
    print(err)  # 1
  1. 使用 os._exit(),直接退出,不会抛出异常;
import os
os._exit()
  • 但我们常用的Win32平台和基于UNIX的平台不会有所影响
  1. 使用 os.kill(),用于直接 Kill 掉进程,只在 unix 平台上有效;
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值