문제

나는 NMAP를 파이썬에서 사용하고, 텍스트 파일을 사용하여 네트워크를 스캔하려고 시도하고 있습니다.모든 스캔 범위는 다음과 같이 텍스트 파일에 있습니다.

192.168.1.1-100. 192.168.1.120-200. ...

스캔이 호스트 192.168.1.3을 찾지 못하면 오프라인 이었기 때문입니다.프로그램이 중단됩니다.이 충돌 주위를 둘러 볼 수있는 방법이 있습니까?시도 / 잡기와 같은 것을 사용할 수 있습니까?

고마워, Jay


counter = 0
with open('range.txt') as rangefile:
    content = rangefile.readlines()

while counter < len(content):
    nm = nmap.PortScanner()
    #define the nmap scan here
    nm.scan(content[counter], '517', '-sU -sT')
.

코드 샘플입니다

  File "c:\...\nmapscan.py", line 63, in <module> therehost = Host.objects.get(ipv4_address=hosts) va.assessment.models.DoesNotExist: Host matching query does not exist. Lookup parameters were {'ipv4_address': u'134.250.16.103'}
.

이것은 오류 입니다

도움이 되었습니까?

해결책

nmap는 제외에 대해 두 개의 인수를 취합니다.--exclude 호스트 이름을 취하고 --excludefile는 제외 해야하는 호스트 이름을 포함하는 파일을 취합니다.이들 중 하나를 필요로 사용하십시오. 대상 설정에 대한 자세한 내용은 Man 페이지를 참조하십시오.

여기에 내 테스트 결과가 있습니다 -

Python 3.2.3 (default, May  3 2012, 15:54:42) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import nmap
>>> nm=nmap.PortScanner()
>>> nm.scan('134.250.16.103','517', '-sU -sT')
{'nmap': {'scanstats': {'uphosts': '0', 'timestr': 'Sat Jul 28 12:54:27 2012', 'downhosts': '1', 'totalhosts': '1', 'elapsed': '3.06'}, 'scaninfo': {'udp': {'services': '517', 'method': 'udp'}, 'tcp': {'services': '517', 'method': 'connect'}}, 'command_line': 'nmap -oX - -p 517 -sU -sT 134.250.16.103'}, 'scan': {'134.250.16.103': {'status': {'state': 'down', 'reason': 'no-response'}, 'hostname': ''}}}
>>> 
.

TRY-CATCH - 를 사용할 수 있습니다.

try:
   nm.scan(content[counter], '517', '-sU -sT')
except:
   #handle exception...
.

어떤 서버가 다운되지 않으므로 NMAP 스캔으로 진행하기 전에 서버를 ping 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top