Skip to content

Instantly share code, notes, and snippets.

@ArkaprabhaChakraborty
Last active April 4, 2024 07:59
Show Gist options
  • Save ArkaprabhaChakraborty/128e030cd5e4ffca8c7e8780268385ce to your computer and use it in GitHub Desktop.
Save ArkaprabhaChakraborty/128e030cd5e4ffca8c7e8780268385ce to your computer and use it in GitHub Desktop.
#!/usr/bin/env python3
import argparse
import socket
from urllib.parse import urlparse
def get_ip_addresses(urls):
ip_addresses = []
for url in urls:
try:
parsed_url = urlparse(url)
if parsed_url.netloc:
ip_address = socket.gethostbyname(parsed_url.netloc)
ip_addresses.append(ip_address)
else:
ip_address = socket.gethostbyname(parsed_url.path)
ip_addresses.append(ip_address)
print(f"[*] URL: {url} IP Address: {ip_address}")
except Exception as e:
print(f"Error processing {url}: {e}")
return ip_addresses
def write_to_file(ip_addresses, output_file=None, unique=False):
#print(ip_addresses)
if unique:
ip_addresses = list(set(ip_addresses))
#print(ip_addresses)
if output_file is not None:
with open(output_file, 'w') as f:
for ip_address in ip_addresses:
f.write(f"{ip_address}\n")
def main():
parser = argparse.ArgumentParser(description='Resolve IP addresses from a list of URLs')
parser.add_argument('--input-file', '-i', metavar='INPUT_FILE', type=str,
help='File containing list of URLs, one per line')
parser.add_argument('--output', '-o', metavar='OUTPUT_FILE', type=str, default=None,
help='Output file to write IP addresses (default: ip_addresses.txt)')
parser.add_argument('--unique', '-u', action='store_true', help='Write only unique IP addresses')
args = parser.parse_args()
if args.input_file:
with open(args.input_file, 'r') as file:
urls = file.read().splitlines()
else:
urls = []
ip_addresses = get_ip_addresses(urls)
if args.output is not None:
write_to_file(ip_addresses, args.output, args.unique)
print(f"IP addresses written to {args.output}")
if __name__ == "__main__":
main()
@ArkaprabhaChakraborty
Copy link
Author

ArkaprabhaChakraborty commented Apr 4, 2024

Usage:

./findipfromwebsite -i websites.txt

Save it to /usr/local/bin for ease of use.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment