如何使用Python判断给定的域名是使用HTTP还是HTTPS协议?

ID:20565 / 打印

如何使用python判断给定的域名是使用http还是https协议?

python拼接域名判断http还是https

问题:

如何使用python判断给定的域名是使用http还是https协议?我们需要将域名拼接成完整的url(例如:http://www.baidu.com),但我们不知道域名的协议类型。

答案:

立即学习“Python免费学习笔记(深入)”;

对于公共网站,我们可以尝试访问不同端口来识别协议。http协议通常使用端口80,而https协议通常使用端口443。

import socket  def get_protocol(domain):     """     判断域名使用的协议(http或https)      args:         domain (str): 需要判定的域名      returns:         str: 识别出的协议("http"或"https")     """      try:         # 尝试连接到http端口         sock = socket.socket(socket.af_inet, socket.sock_stream)         sock.settimeout(1)         sock.connect((domain, 80))         sock.close()         return "http"     except socket.error:         pass      try:         # 尝试连接到https端口         sock = socket.socket(socket.af_inet, socket.sock_stream)         sock.settimeout(1)         sock.connect((domain, 443))         sock.close()         return "https"     except socket.error:         pass      # 均未连接成功,则无法识别协议     return none

使用方法:

domain = "www.baidu.com" protocol = get_protocol(domain)  if protocol == "http":     url = "http://" + domain elif protocol == "https":     url = "https://" + domain else:     # 无法识别协议,需要人工判断     print("无法识别协议,请手动指定:")     url = input()
上一篇: 使用一个连接创建多个游标进行少量并发增删改查是否可行?
下一篇: 如何用 Python 函数计算一个整数各个数字之和?

作者:admin @ 24资源网   2025-01-14

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。