현재 개발중인 간단한 Python 프로그램이 있는데 어떤 이유로 작동하지 않습니다.
전체 프로그램 작동 방식은 20 개의 포트 목록을 가지고 있으며 기본적으로 선택한 포트에서 호스트에 대해 ping을 수행하는 목록을 반복합니다. 여기 코드는 다음과 같습니다Python - 내 소켓 코드에 무엇이 문제입니까?
import socket
import sys
print ' +-====================================================-+'
print '/ \ '
print '| PyPortScanner |'
print '| by Ag3ntChr0m |'
print ' \ /'
print ' +-====================================================-+'
print ''
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error, msg:
print 'Failed to create socket. Error code: ' + str(msg[0]) + 'Error message: ' + msg[1]
sys.exit()
print 'Socket Created'
host = raw_input('Enter the desired host to scan: ')
port = [80, 443, 21, 22, 4567, 8080, 25, 3389, 23, 53, 1723, 110, 135, 445,
139, 1863, 143, 8081, 10000, 1025]
portFail = []
print 'Scanning top 20 most often open ports ...'
try:
remote_ip = socket.gethostbyname(host)
except socket.gaierror:
#couldn't resolve host at port
print 'Hostname could not be resolved. Program exiting'
sys.exit()
print 'IP address of ' + host + ' is ' + remote_ip
print '+-===================================-+'
print '| Ports Scanned:----------------------|'
print '+-===================================-+'
print ''
#Connect to remote server
for i in range(0, 20):
portScan = int(str(port[i])) <----
try:
s.connect((remote_ip, portScan))
print "\t" + str(portScan)
s.close()
except:
portFail.append(portScan)
err = True
raw_input('Press Enter to Continue...')
if err:
print '+-=============================-+'
print '| Failed Port Scan:-------------|'
print '+-=============================-+'
print ''
size = len(portFail)
for i in range(1, size):
print "\t" + str(portFail[i])
당신은 s.socket가 사용할 수있는 변수로 포트 번호 (화살표로 표시된 라인에서) 그 다음
- 부하로 가정되는 프로그램을 실행하면 연결을 시도하십시오.
- 그런 다음 호스트에서 소켓을 열고 (기본적으로 ping) 소켓을 닫으려고 시도합니다.
- 연결되면 스캔 된 포트의 화면에이 내용이 기록됩니다.
- 그러나 실패한 경우 (최근에 있었던 경우) 포트 스캔 실패로 인쇄됩니다.
프로그램을 실행하면 스캔 된 포트 아래의 목록 (80)에있는 첫 번째 포트가 인쇄되지만 나머지 포트는 실패한 포트 스캔 아래에 배치됩니다 - 적어도 일부는 열려 있음을 알고 있지만.
이 프로그램이 첫 번째 포트보다 더 많은 포트를 ping하면 어떻게됩니까?
감사합니다. 이것은 작동하는 것처럼 보입니다!구글을 쫓아 가지는 않겠지 만, 그것은 나쁜 것을 얼려 버린다. –