Python 2.7 UDP端口扫描器

Python 2.7 UDP Port Scanner

你现在能帮我解决这个问题吗?问题是当我进入本地主机时,我的程序找不到打开的端口或关闭的端口,如果你真的想帮助我并且你知道如何解决或修复它,请为我单独编译我​​的代码,现在程序由于某种原因无法接收来自主机的消息,我搜索了整个互联网,但找不到扫描仪有多个 UDP 端口的任何地方

import socket
import sys
# Ask for input
remoteServer    = raw_input('Enter a remote host to scan: ')
remoteServerIP  = socket.gethostbyname(remoteServer)
print( "-" * 60)
print ('Please wait, scanning remote host', remoteServerIP)
print( "-" * 60)
for port in range(1,1025):
        try:
         sock=socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)
         sock.sendto('hello',(remoteServerIP,port))
          #sock.settimeout(1)
         data, address = sock.recvfrom(1024)
         if data != None:
            print ('Port {}:      Open'.format(port))
         else:
            print ('Port {}:     Closed'.format(port))
         sock.close()
        except socket.error as sock_err:
            if(sock_err.errno == socket.errno.ECONNREFUSED):
                 print sock_err('Connection refused')
        except socket.gaierror:
         print 'Hostname could not be resolved. Exiting'
        except socket.error:
         print "Couldn't connect to server"
        except KeyboardInterrupt:
         print 'You pressed Ctrl+C'

需要使用ICMPpacket.For程序才能运行,需要输入python 我发布我的代码是因为这个问题的答案实际上是不存在的,而且任务实际上很困难。

  import socket
    import sys
    import subprocess
    def getServiceName(port, proto):
        try:
            name = socket.getservbyport(int(port), proto)
        except:
            return None
        return name
    UDP_IP = sys.argv[1]
    for RPORT in range(int(sys.argv[2]), int(sys.argv[3])):
        MESSAGE = "ping"
        client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
        if client == -1:
            print("udp socket creation failed")
        sock1 = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_ICMP)
        if sock1 == -1:
            print("icmp socket creation failed")
        try:
            client.sendto(MESSAGE.encode('utf_8'), (UDP_IP, RPORT))
            sock1.settimeout(1)
            data, addr = sock1.recvfrom(1024)
        except socket.timeout:
            serv = getServiceName(RPORT, 'udp')
            if not serv:
                pass
            else:
                print('Port {}:      Open'.format(RPORT))
        except socket.error as sock_err:
                if (sock_err.errno == socket.errno.ECONNREFUSED):
                    print(sock_err('Connection refused'))
                client.close()
                sock1.close()