In [1]:
import socket
In [2]:
infolist = socket.getaddrinfo('gatech.edu', 'www')
In [3]:
infolist
Out[3]:
In [4]:
info = infolist[0]
In [5]:
info
Out[5]:
In [6]:
info[0:3]
Out[6]:
In [7]:
s = socket.socket(*info[0:3])
In [10]:
info[4]
Out[10]:
In [11]:
s.connect(info[4])
In [13]:
s.sendall(b'GET / HTTP/1.1\r\nHost:gatech.edu\r\n\r\n')
In [14]:
s.recv(4096)
Out[14]:
In [15]:
infolist = socket.getaddrinfo('google.com', 'www')
In [17]:
infolist
Out[17]:
In [18]:
sock_ipv6 = socket.socket(*infolist[1][0:3])
In [19]:
sock_ipv6
Out[19]:
In [20]:
# Using getaddrinfo() to Bind Your Server to a Port
In [21]:
from socket import getaddrinfo
In [23]:
getaddrinfo(None, 'smtp', 0, socket.SOCK_STREAM, 0, socket.AI_PASSIVE)
Out[23]:
In [25]:
getaddrinfo(None, 53, 0, socket.SOCK_DGRAM, 0, socket.AI_PASSIVE)
Out[25]:
In [26]:
# binding to localhost
In [27]:
getaddrinfo('127.0.01', 'smtp', 0, socket.SOCK_STREAM,0)
Out[27]:
In [28]:
getaddrinfo('127.0.0.1', 53, 0, socket.SOCK_DGRAM, 0)
Out[28]:
In [38]:
getaddrinfo('localhost', 443, 0, socket.SOCK_STREAM, 0)
Out[38]:
In [39]:
getaddrinfo('localhost', 8080, 0, socket.SOCK_STREAM, 0)
Out[39]:
In [40]:
getaddrinfo('localhost', 'smtp', 0, socket.SOCK_STREAM,0)
Out[40]:
In [41]:
''' Using getaddrinfo() to Connect to a Service
AI_ADDRCONFIG flag filters out any addresses that are impossible for your computer to reach.
AI_V4MAPPED return the IPv4 addresses reencoded as IPv6 addresses that you can actually use '''
Out[41]:
In [43]:
getaddrinfo('ftp.mozilla.org', 'ftp', 0, socket.SOCK_STREAM, 0, socket.AI_ADDRCONFIG | socket.AI_V4MAPPED)
Out[43]:
In [44]:
getaddrinfo('iana.org', 'www', 0, socket.SOCK_STREAM, 0, socket.AI_ADDRCONFIG | socket.AI_V4MAPPED)
Out[44]:
In [45]:
getaddrinfo('iana.org', 'www', 0, socket.SOCK_STREAM, 0)
Out[45]:
In [46]:
# Asking getaddrinfo() for a Canonical Hostname
In [50]:
getaddrinfo('iana.org', 'www', 0, socket.SOCK_STREAM, 0, socket.AI_ADDRCONFIG | socket.AI_V4MAPPED| socket.AI_CANONNAME)
Out[50]:
In [51]:
getaddrinfo('google.com', 'www', 0, socket.SOCK_STREAM, 0, socket.AI_CANONNAME)
Out[51]:
In [52]:
# to resolve those fancy new domain names that have Unicode characters in them.
In [57]:
getaddrinfo('中央大学.tw', 'www', 0, socket.SOCK_STREAM, 0,socket.AI_ADDRCONFIG | socket.AI_V4MAPPED)
Out[57]:
In [58]:
'中央大学.tw'.encode('idna')
Out[58]:
In [59]:
socket.gethostbyname('xn--fiq80yua78t.tw')
Out[59]:
In [60]:
# Primitive Name Service Routines
In [61]:
socket.gethostname()
Out[61]:
In [62]:
socket.getfqdn()
Out[62]:
In [3]:
socket.gethostbyname('google.com')
Out[3]:
In [4]:
socket.gethostbyaddr('216.58.220.14')
Out[4]:
In [5]:
socket.gethostbyname('cern.ch')
Out[5]:
In [6]:
socket.gethostbyaddr('188.184.9.234')
Out[6]:
In [7]:
socket.getprotobyname('UDP')
Out[7]:
In [11]:
socket.getprotobyname('tcp')
Out[11]:
In [13]:
socket.gethostbyname(socket.getfqdn())
Out[13]:
In [ ]: