2017-12-26 6 views
-1

파이썬으로 공개 및 로컬 IP의 열린 포트를 확인할 수있는 포트 스캐너를 제공했습니다. 공용 IP에 Portscann는 잘 작동하지만 난 (127.0.0.1 또는 0.0.0.0)를 로컬 호스트에 scann을하려고 할 때 그것은 ... Heres는 코드파이썬 : localhost의 포트 스캔

이 폐쇄되는 모든 포트에 대해 말하기를 :

try: 
    for port in range(int(sport), int(eport) + 1): 
     sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
     result = sock.connect_ex((remoteServer, port)) 
     if result == 0: 
      print("[+] Port " + str(port) + " = [Open]") 
     else: 
      print("[-] Port " + str(port) + " = [Closed]") 
     sock.close() 
except: 
    print("\nScan failed!") 
    time.sleep(2) 
    print("Check your IP adress.\n") 
    time.sleep(3) 
    print("The programm will be closed...") 
    time.sleep(4) 
    sys.exit(0) 
+0

나는 완전히 질문을 이해하지 못한다. 정확히 무엇이 문제인가? –

+0

먼저 "scanme.nmap.org"를 포트 20에서 25 (외부)로 스캔했습니다. 결과 = 20, 21, 23, 24 및 25는 닫히고 포트 22는 opend .... 지금까지 그렇게 좋았습니다. 하지만 127.0.0.1 (로컬) 스캔을 시도하면 포트 20에서 25가 닫히게됩니다 ... – claudio26

+0

이 포트에서 실행중인 서비스가 있습니까? –

답변

0
  1. 어쩌면 서버가 공용 IP를 바인딩했을 수도 있습니다 (어쩌면 구성 파일에 바인딩 된 IP에 대한 구성이 있음).이 서버는 다른 사람들이 방문 할 수 있습니다.
  2. 서버가 127.0.0.1 (루프백 주소)를 바인딩하면 다른 사람들이 자신을 제외한 다른 사람을 방문하지 못할 수도 있습니다.

그래서 첫 번째 상황 (공용 IP 바인드)은 127.0.0.1 (루프백 주소)를 바인딩하지 않으므로 스캔하지 못하게됩니다. 또는 다른 말로하면 공용 IP 및 루프백 주소는 두 개의 다른 네트워크 장치를 나타냅니다.

+0

네,하지만 하나의 소켓과 그 장치에서 실행되는 로컬 ... – claudio26

+0

1. 소켓 서버 구성, 0.0.0.0 (실제 공개 IP 및 루프백 주소가 아님)을 바인딩하려고하면 상황에 유용 할 수 있습니다. 2. 다른 방법을 사용하거나, scan.py에서 공개 IP를 얻을 수 있습니다. – firesurfing