Overview:
- The connect() method of Python’s socket module, connects a TCP(Transmission Control Protocol) based client socket to a TCP based server socket.
- The connect() function initiates a 3-way handshake with the server socket and establishes the connection.
- The IP address of a server socket is passed as the parameter to the connect() method.
- Before passing an IP address to the connect() method it is important to make sure, it is of the right type - an IPv4 address or IPv6 address.
- The type of IP address to be used with a socket is specified during the creation of a socket while calling the socket() function through the parameter family. For an IPv4 address socket.AF_INET to be used and for IPv6 address socket.AF_INET6.
- The connect() function makes the accept() to be called on the server socket it is connecting to.
- Once a connection is established to the remote socket the send(), sendall() methods can be used for sending data to the server. In the similar way the recv() function can be used for receiving data from the server socket.
- The recv() function wait for a message to arrive in the socket unless the socket is non-blocking mode and read up to the specified buffer size.
Example:
# ----- Python program for querying whois information ----- import socket
# Create a TCP socket # By default family=AF_INET, type=SOCK_STREAM whoisClient = socket.socket();
# Make a connect to the server - TCP does a 3 way handshake whoisClient.connect(("whois.avalidwhoisserver.tld", 43)); # Active open whoisClient.sendall("example.com".encode());
# Buffer size to receive reply from whois server bufferSize = 4096;
# Read the whole reply from whois server while(True): data = whoisClient.recv(4096); lines = data.decode().splitlines(); if(len(lines) > 0): for line in lines: if(len(line)>0): print(line);
if(data==b''): print("Connection closed"); break; |
Output:
Domain Name: EXAMPLE.COM Registry Domain ID: 2336799_DOMAIN_COM-VRSN Registrar WHOIS Server: whois.iana.org Registrar URL: http://res-dom.iana.org Updated Date: 2018-08-14T07:14:12Z Creation Date: 1995-08-14T04:00:00Z Registry Expiry Date: 2019-08-13T04:00:00Z Registrar: RESERVED-Internet Assigned Numbers Authority Registrar IANA ID: 376 Registrar Abuse Contact Email: Registrar Abuse Contact Phone: Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited Domain Status: clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited Name Server: A.IANA-SERVERS.NET Name Server: B.IANA-SERVERS.NET DNSSEC: signedDelegation DNSSEC DS Data: 31589 8 1 3490A6806D47F17A34C29E2CE80E8A999FFBE4BE DNSSEC DS Data: 31589 8 2 CDE0D742D6998AA554A92D890F8184C698CFAC8A26FA59875A990C03E576343C DNSSEC DS Data: 43547 8 1 B6225AB2CC613E0DCA7962BDC2342EA4F1B56083 DNSSEC DS Data: 43547 8 2 615A64233543F66F44D68933625B17497C89A70E858ED76A2145997EDF96A918 DNSSEC DS Data: 31406 8 1 189968811E6EBA862DD6C209F75623D8D9ED9142 DNSSEC DS Data: 31406 8 2 F78CF3344F72137235098ECBBD08947C2C9001C7F6A085A17F518B5D8F6B916D URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/ Last up date of whois database: 2019-06-25T11:51:17Z For more information on Whois status codes, please visit https://icann.org/epp NOTICE: The expiration date displayed in this record is the date the registrar's sponsorship of the domain name registration in the registry is currently set to expire. This date does not necessarily reflect the expiration date of the domain name registrant's agreement with the sponsoring registrar. Users may consult the sponsoring registrar's Whois database to view the registrar's reported date of expiration for this registration. TERMS OF USE: You are not authorized to access or query our Whois database through the use of electronic processes that are high-volume and automated except as reasonably necessary to register domain names or modify existing registrations; the Data in VeriSign Global Registry Services' ("VeriSign") Whois database is provided by VeriSign for information purposes only, and to assist persons in obtaining information about or related to a domain name registration record. VeriSign does not guarantee its accuracy. By submitting a Whois query, you agree to abide by the following terms of use: You agree that you may use this Data only for lawful purposes and that under no circumstances will you use this Data to: (1) allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations via e-mail, telephone, or facsimile; or (2) enable high volume, automated, electronic processes that apply to VeriSign (or its computer systems). The compilation, repackaging, dissemination or other use of this Data is expressly prohibited without the prior written consent of VeriSign. You agree not to use electronic processes that are automated and high-volume to access or query the Whois database except as reasonably necessary to register domain names or modify existing registrations. VeriSign reserves the right to restrict your access to the Whois database in its sole discretion to ensure operational stability. VeriSign may restrict or terminate your access to the Whois database for failure to abide by these terms of use. VeriSign reserves the right to modify these terms at any time. The Registry database contains ONLY .COM, .NET, .EDU domains and Registrars. ==================================================== % IANA WHOIS server % for more information on IANA, visit http://www.iana.org % This query returned 1 object domain: EXAMPLE.COM organisation: Internet Assigned Numbers Authority created: 1992-01-01 source: IANA This information was obtained from a different whois server, so we cannot verify its authenticity. Connection closed |