Python socket 函数 getaddrinfo

python 实现dns解析,dns_request(socket getaddrinfo whiel) python 实现dns解析,dns_request 阅读详情
# -*- coding: cp936 -*-
socket.getaddrinfo(host,  port, family=0, socktype=0, proto=0, flags=0)
#根据给定的参数host/port,相应的转换成一个包含用于创建socket对象的五元组,
#参数host为域名,以字符串形式给出代表一个IPV4/IPV6地址或者None.
#参数port如果字符串形式就代表一个服务名,比如“http”"ftp""email"等,或者为数字,或者为None
#参数family为地主族,可以为AF_INET  ,AF_INET6 ,AF_UNIX.
#参数socketype可以为SOCK_STREAM(TCP)或者SOCK_DGRAM(UDP)
#参数proto通常为0可以直接忽略
#参数flags为AI_*的组合,比如AI_NUMERICHOST,它会影响函数的返回值
#附注:给参数host,port传递None时建立在C基础,通过传递NULL。
#该函数返回一个五元组(family, socktype, proto, canonname, sockaddr),同时第五个参数sockaddr也是一个二元组(address, port)
# Echo server program
import socket
import sys

HOST = None               # Symbolic name meaning all available interfaces
PORT = 50007              # Arbitrary non-privileged port
s = None
for res in socket.getaddrinfo(HOST, PORT, socket.AF_UNSPEC,
                              socket.SOCK_STREAM, 0, socket.AI_PASSIVE):
    af, socktype, proto, canonname, sa = res
    try:
        #根据getaddrinfo()的返回信息初始化socket
        s = socket.socket(af, socktype, proto)
    except socket.error, err_msg:
        print err_msg #回显异常信息
        s = None
        continue
    try:
        #sa是(host,port)的二元组
        s.bind(sa)
        #监听客户端请求
        s.listen(1)
    except socket.error, err_msg:
        print err_msg
        s.close()
        s = None
        continue
    break
if s is None:
    print 'could not open socket'
    sys.exit(1)
    
conn, addr = s.accept()
print 'Connected by', addr

while 1:
    data = conn.recv(1024)# 2)接受数据
    if not data: break
    conn.send(data)# 3)并返回2中接受到得数据
conn.close()



# Echo client program
import socket
import sys

HOST = 'daring.cwi.nl'    # The remote host
PORT = 50007              # The same port as used by the server
s = None
for res in socket.getaddrinfo(HOST, PORT, socket.AF_UNSPEC, socket.SOCK_STREAM):
    af, socktype, proto, canonname, sa = res
    try:
        s = socket.socket(af, socktype, proto)
    except socket.error, msg:
        s = None
        continue
    try:
        s.connect(sa)
    except socket.error, msg:
        s.close()
        s = None
        continue
    break
if s is None:
    print 'could not open socket'
    sys.exit(1)
    
s.sendall('Hello, world')# 1)发送数据
data = s.recv(1024)# 4)接受服务器回显的数据
s.close()
print 'Received', repr(data) #打印输出

解决 socket.gaierror: [Errno 11001] getaddrinfo failed 因为在做一些网页数据集的处理,需要解析域名,整理Ip,故用到了, Socket.getaddrinfo, 首先是从之前处理好的域名数据集中读取域名 其次循环挨个处理 做好异常处理 但是结果显然不尽如人意,但是当你手动将单个域名,放进去解析,是没有问题的。 然后我就蒙了,后来经过一圈的查阅资源,试了挺多的手段,后来看到这样的一段话 I think the problem is a newline at the end of server_name. 也就是说在我读取的每一行的域名后面是有一个换行符的。 接下来 就是去掉它 ‘\n’ like is 解释一下,这里去掉换行符的方式有两种: 用 立即下载

相关推荐

Appstore 3.2(f)违规自救指南:从触发到申诉的完整应对策略

本文详细解析了Appstore 3.2(f)违规的应对策略,从触发原因到申诉流程,帮助开发者有效自救。文章涵盖隐瞒行为、账户关联和信息造假三大违规场景的判定逻辑,并提供申诉信写作的黄金法则和长期合规防御措施,确保开发者能够顺利通过苹果审核。

weixin_29304985的博客 662

基于TCP的socket编程实现client和server通信

基于TCP的socket编程实现client和server通信 . 实验内容: . client为单线程、server为多线程(群聊功能) . 原理: . 套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。 . 环境: . Python 3.8.2、Wind...

qq_42404383的博客 3922

基于MicroPython的ESP32与微信小程序MQTT通信实战

本文详细介绍了基于MicroPython的ESP32与微信小程序通过MQTT协议实现远程控制的完整实战方案。项目利用巴法云作为免费MQTT服务器,提供了从设备端编程、小程序开发到通信调试的全流程指南,帮助开发者快速构建低成本、易上手的物联网应用,如智能开关、传感器监控等。

week9的博客 634

Python实现TCP Server && Client

python实现TCP server , client class Server(): def __init__(self): self._sel = selectors.DefaultSelector() self._bufsize = 1024 def start(self): self.register() self.listen() def register(self): serv.

DuanDuan0820的博客 1596

CentOS 7.9安装python3.11

CentOS 7.9安装python3.11

leafseelight的专栏 1342

ROS相机内参标定详细步骤指南

相机标定的目的是为了确定相机内部参数和外部参数,以便修正图像并将图像坐标映射到世界坐标,或者从世界坐标映射到图像坐标。这个过程是计算机视觉和三维感知任务的关键步骤之一,它有以下主要目的: 1. **减小畸变**:相机镜头和传感器可能引入径向和切向畸变,使得图像中的直线变得弯曲或者物体的形状不准确。通过标定相机,可以矫正这些畸变,使图像更准确。

m0_56661101的博客 1万+

python创建TCPserver与多个client通信

python创建TCPserver与多个client通信

qq_31401993的博客 1483

沁恒CH32V30X学习笔记02--GPIO的使用教程及2次封装驱动

刚复位后,GPIO 口运行在初始状态,这时大多数 IO 口都是运行在状态所有的 GPIO 口都可以被配置外部中断输入通道,但一个外部中断输入通道最多只能映射到一个GPIO 引脚上,且外部中断通道的序号必须和 GPIO 端口的位号一致,,两方都是一对一的关系。复用功能。

Car12 706

用python实现网络编程

一、基础概念 1、网络通信概述: 网络编程就是让不同电脑上的软件能够进行数据传递,即进程之间的通信

吴大喜的博客 3018

1、符号回归:原理、应用与实践

本文全面介绍了符号回归(Symbolic Regression)的原理、发展历程、核心算法及其在科学与工程领域的广泛应用。文章从基本概念出发,详细阐述了基于遗传编程的符号回归机制,并探讨了其在游艇水动力学、化学过程、锂离子电池、生物医学等多个领域的实际应用。同时,博文还涵盖了高级技术如知识集成、系数优化、预测区间计算及微分方程发现等内容,对比了开源与商业软件工具,并展望了未来发展趋势,旨在为研究人员和从业者提供一本实用的符号回归指南。

ipfs8storage的博客 248

【YoloV11改进策略】基于流形约束超连接(mHC)增强YoloV11全局特征提取能力|独家复现|梁文峰署名论文

论文标题:流形约束超连接 (Manifold-Constrained Hyper-Connections, mHC)核心问题:针对超连接 (Hyper-Connections, HC) 扩展残差流宽度时破坏恒等映射、引发训练不稳定性和高内存开销的问题,提出一种约束性框架。目标:恢复残差连接的稳定性与可扩展性,同时保持HC的性能增益。基准模型:基于DeepSeek-V3的MoE架构,进行了3B、9B、27B模型的实验验证。论文图示mHC 是一个通用的HC扩展框架。

m0_47867638的博客 1349

python socket函数_Python socket 函数 getaddrinfo | 学步园

# -*- coding: cp936 -*-socket.getaddrinfo(host, port, family=0, socktype=0, proto=0, flags=0)#根据给定的参数host/port,相应的转换成一个包含用于创建socket对象的五元组,#参数host为域名,以字符串形式给出代表一个IPV4/IPV6地址或者None.#参数port如果字符串形式就代表一个服...

weixin_31455121的博客 594

从零开始学习CANoe(六)—— CAPL 测试节点

创建CAPL Test Module的两种方式

蚂蚁小兵 1万+

Python:通过socket.gethostbyname/socket.getaddrinfo获取域名的ip地址

【代码】Python:通过socket.gethostbyname获取域名的ip地址。

彭世瑜的博客 1698

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

info在python中的意思_【转】python中getaddrinfo详解

Translate the host/port argument into a sequence of 5-tuples that contain all the necessary arguments for creating a socket connected to that service. host is a domain name, a string representation of...

weixin_39782500的博客 1564

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

pythoninfo函数_python getaddrinfo 函数

现在python中用到的关于地址查询的函数几乎都可以用getaddrinfo。 也就是说,如果你要想做一些与地址查询,主机名ip转换的操作,都可以用这个函数,下面看一下这个函数。首先,我们可以用getaddrinfo查询到想访问主机的ip地址和端口号>>> import socket>>> from pprint import pprint>>&gt...

weixin_39620629的博客 933

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Python笔记:socket模块的getaddrinfo详解

函数原型:socket.getaddrinfo(host, port[, family[, socktype[, proto[, flags]]]]) 返回值:[(family, socktype, proto, canonname, sockaddr)]有元组组成的列表,元组里面包含5个元素,其中sockaddr是(host,port) family: 表示socket使用的协议簇。常用

无香花自开 2万+

socket模块的getaddrinfo方法详解

getaddrinfo方法用于通过url解析dns 其中url为域名,如www.sharejs.com,不能带http和url地址 import socket import urlparse def dns_resolver(url): ''' 用于多域名的DNS解析获取IP地址 ''' try: parse = urlp...

weixin_30314793的博客 1082

python socket模块getaddrinfo

函数原型:socket.getaddrinfo(host, port[, family[, socktype[, proto[, flags]]]]) 返回值:[(family, socktype, proto, canonname, sockaddr)]有元组组成的列表,元组里面包含5个元素,其中sockaddr是(host,port) family: 表示socket使用的协议簇。常用的协...

深海微澜 2715

python实现dns协议_python 实现dns请求,dns_request(socket getaddrinfo whiel)

#coding:UTF-8#socket.getaddrinfo(host, port, family=0, socktype=0, proto=0, flags=0)#根据给定的参数host/port,相应的转换成一个包含用于创建socket对象的五元组,#参数host为域名,以字符串形式给出代表一个IPV4/IPV6地址或者None.#参数port如果字符串形式就代表一个服务名,比如“htt...

weixin_39589394的博客 460

python 实现dns请求,dns_request(socket getaddrinfo whiel)

#coding:UTF-8#socket.getaddrinfo(host, port, family=0, socktype=0, proto=0, flags=0) #根据给定的参数host/port,相应的转换成一个包含用于创建socket对象的五元组, #参数host为域名,以字符串形式给出代表一个IPV4/IPV6地址或者None. #参数port如果字符串形式就代表...

weixin_34174132的博客 624

python socket timeout异常_Python Socket Connect 设置超时无效

import socketsocket.setdefaulttimeout(0.01)socket.getaddrinfo("123123231", 12345)这个setdefaulttimeout对socket模块方法没有用处,只是针对socket.socket对象设置超时。这点从源代码中可以看出。def create_connection(address, timeout=_GLOBAL_D...

weixin_33734921的博客 4255

python通过socket获取本机ip地址

使用 python socket 获取本机ip地址。

奇点.的博客 7355
上一篇: Python获取本地和远程主机信息
下一篇: 获取当前系统时间(三种方法)
错_对
博客等级 码龄16年 68粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值