MishaVacic
MishaVacic

Reputation: 1887

socket.gaierror: [Errno -2] Name or service not known with Python3

I am trying to use port scanner program.

import socket
import subprocess
import sys
from datetime import datetime

subprocess.call('clear', shell=True)

remoteServer    = input("Enter a remote host to scan: ")
remoteServerIP  = socket.gethostbyname(remoteServer)

print( "-" * 60)
print( "Please wait, scanning remote host", remoteServerIP)
print( "-" * 60)

t1 = datetime.now()

try:
    for port in range(1,1025):  
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        result = sock.connect_ex((remoteServerIP, port))
        if result == 0:
            print( "Port {}:     Open".format(port))
        sock.close()

except KeyboardInterrupt:
    print( "You pressed Ctrl+C")
    sys.exit()

except socket.gaierror:
    print( 'Hostname could not be resolved. Exiting')
    sys.exit()

except socket.error:
    print( "Couldn't connect to server")
    sys.exit()

t2 = datetime.now()
total =  t2 - t1
print( 'Scanning Completed in: ', total)

But it is not working.

Enter a remote host to scan: http://www.osjajinci.com/
Traceback (most recent call last):
  File "portscanner.py", line 12, in <module>
    remoteServerIP  = socket.gethostbyname(remoteServer)
socket.gaierror: [Errno -2] Name or service not known

I am trying to learn more about the sockets,I am begginer.I have double checked the Python3 code and could not find any mistakes.

Upvotes: 7

Views: 30482

Answers (1)

Serge Ballesta
Serge Ballesta

Reputation: 148890

socket.gethostbyname expects a host name and not an URL. You must give www.osjajinci.com instead of http://www.osjajinci.com/

Upvotes: 17

Related Questions