Monday, April 21, 2025

Get IPv4 and IPv6 Address of Domain - Python

import socket, time

domain_source = {'google.com':'http', 'facebook.com':'http'}

for x, y in domain_source.items():
    time.sleep(2)    
    print(socket.getaddrinfo(x, y))

This Python code imports the 'socket' and 'time' modules using the 'import' keyword. The 'socket' module provides a way to communicate over a network, while the 'time' module provides access to time-related functions.

The code defines a dictionary called 'domain_source' with two key-value pairs. Each key is a domain name (e.g., 'google.com', 'facebook.com') and each value is a string specifying the network protocol to use when connecting to that domain (e.g., 'http', 'https').

The code then enters a 'for' loop that iterates over each key-value pair in the 'domain_source' dictionary. For each iteration of the loop, the code does the following:

  1. Calls the 'time.sleep()' function, which pauses the execution of the script for 2 seconds.

  2. Calls the 'socket.getaddrinfo()' method with two arguments: the domain name (specified by the 'x' variable) and the network protocol (specified by the 'y' variable). This method returns a list of tuples, with each tuple containing information about a possible network address for the specified domain and protocol.

  3. Prints the result of the 'socket.getaddrinfo()' method to the console using the 'print()' function.

Let's break down each line of code in more detail:

import socket, time

This line imports the 'socket' and 'time' modules into the script, which provide access to network communication and time-related functions respectively.

domain_source = {'google.com':'http', 'facebook.com':'http'}

This line defines a dictionary called 'domain_source' with two key-value pairs. The keys are domain names and the values are network protocols.

for x, y in domain_source.items():
    time.sleep(2)
    print(socket.getaddrinfo(x, y))

This 'for' loop iterates over each key-value pair in the 'domain_source' dictionary. For each pair, it calls the 'time.sleep()' function to pause the execution of the script for 2 seconds, then calls the 'socket.getaddrinfo()' method with the domain name and network protocol specified in the key-value pair. Finally, it prints the result of the 'socket.getaddrinfo()' method to the console using the 'print()' function.

The 'socket.getaddrinfo()' method returns a list of tuples, with each tuple containing information about a possible network address for the specified domain and protocol. Each tuple contains the following items:

  1. The address family (e.g., AF_INET for IPv4, AF_INET6 for IPv6)

  2. The socket type (e.g., SOCK_STREAM for TCP, SOCK_DGRAM for UDP)

  3. The protocol number (e.g., IPPROTO_TCP for TCP, IPPROTO_UDP for UDP)

  4. The canonical hostname for the address (if available)

  5. The IP address itself

This python script looks up the network addresses for the specified domains using the specified network protocols, and prints the results to the console. It includes a delay of 2 seconds between each lookup to avoid overwhelming the network.

No comments:

Post a Comment

Tkinter Introduction - Top Widget, Method, Button

First, let's make shure that our tkinter module is working ok with simple  for loop that will spawn 5 instances of blank Tk window .  ...