답변:
문제의 LAN에 대해 얼마나 알고 있습니까? 케이블에 꽂혀 있거나 Wi-Fi에 연결된 것을 모르는 것으로 가정합니다.
-sP
일부 호스트가 Ping에 응답하지 않는 경우 보다 훨씬 더 많은 작업을 수행 할 수 있습니다 ( documentation 확인 ). 네트워크 설정과 경로가 올바른 경우에만 nmap이 작동하는 것이 중요합니다.일부 (대부분의?) 시스템 관리자는 위의 방법 중 일부를 좋아하지 않으므로 허용되는지 확인하십시오 (예 : 네트워크). 또한 방화벽에 따라 이러한 방법 중 일부 (DHCP를 사용하여 IP를 얻는 경우도)를 방지 할 수 있으므로 규칙을 먼저 확인하십시오.
Nmap
다음은 nmap으로 기본 호스트 검색 을 수행하는 방법 입니다. 내가 말했듯이 이것을 시도 할 때 네트워크 구성이 정확해야합니다. / 24 서브넷에 192.168.0.50이라고 가정합니다. 귀하의 MAC 주소는 연결할 수있는 것입니다. 내가하고있는 일을보기 위해 wireshark를 실행하고 싶습니다.
먼저 지정된 IP 주소에 대해 DNS의 PTR 레코드 만 확인하려고하는 목록 검색을 시도하고 싶습니다. 호스트에 아무것도 보내지 않으므로 실제로 연결되어 있거나 켜져 있다고 보장 할 수는 없지만 좋은 기회가 있습니다. 이 모드에는 분명히 대화 할 DNS 서버가 필요합니다.
nmap -vvv -sn -sL 192.168.1.0/16
이것은 아무것도 찾지 못하거나 모든 단일 IP가 가동되었음을 알려줍니다.
그런 다음 보통 ARP 스캔을 진행합니다. ARP 요청을 보냅니다 ( "Who has <target IP>? Tell <your IP>"
wireshark에서 볼 수 있음 ). ARP를 필터링하거나 위조하는 사람이 없기 때문에 이것은 매우 안정적입니다. 가장 큰 단점은 서브넷에서만 작동한다는 것입니다.
nmap -vvv -sn -PR 192.168.1.0/24
라우터 나 방화벽 뒤에서 무언가를 스캔하려면 SYN 및 ACK 스캔을 사용하십시오. SYN은 TCP 연결을 시작하고 응답으로 RST 또는 SYNACK을 얻습니다. 호스트가 작동 중입니다. 방화벽이있는 경우 ICMP 통신이 금지되거나 이와 유사한 것이 발생할 수 있습니다. 방화벽이 패킷을 필터링하면 대부분 아무것도 얻지 못합니다. 일부 방화벽 유형은 TCP SYN 패킷 만 필터링하고 다른 모든 TCP 패킷을 통과시킵니다. 이것이 ACK 스캔이 유용한 이유입니다. 호스트가 작동하면 RST가 응답합니다. 어떤 방화벽이 있는지 모르므로 두 가지를 모두 시도하십시오.
nmap -vvv -sn -PS 10.1.2.0/24
nmap -vvv -sn -PA 10.1.2.0/24
물론 -PE -PP -PM과 함께 ICMP 기반 스캔을 사용할 수 있습니다.
다른 흥미로운 방법은 존재하지 않는 프로토콜 번호를 가진 -PO입니다. 방화벽에서는 종종 TCP 및 UDP 만 고려되며 알 수없는 프로토콜을 시도 할 때 어떤 일이 발생하는지 테스트하지 않습니다. 호스트가 작동 중이면 ICMP 프로토콜에 도달 할 수 없습니다.
nmap -vvv -sn -PO160 10.1.2.0/24
또한 nmap에게 호스트 검색 (-Pn)을 건너 뛰고 모든 호스트에서 포트 스캔을 수행하도록 지시 할 수 있습니다. 속도는 매우 느리지 만 어떤 이유로 호스트 검색에서 놓친 다른 호스트를 찾을 수 있습니다.
ip neigh
IpRoute2와 함께 제공 되는 명령이 마음에 듭니다.
ip neigh
192.168.1.1 dev eth0 lladdr 00:1d:7e:f8:21:66 REACHABLE
그러나 나는 그것이 가능한 arp
노드 에서만 작동한다고 생각합니다 .
man ip
이웃 또는 이웃이하는 일을 보여줍니다.
nmap을 설치 하고 실행하십시오 nmap -sP <mynetwork>
.
Nmap done: 1 IP address (1 host up) scanned in 0.01 seconds
.
nmap -sP 192.168.0.*
했고 그것은 형식의 출력 목록을 반환했습니다 :Nmap scan report for justin-desktop2 (192.168.0.61)
Host is up (0.00056s latency).
Host 192.168.2.23 is up (0.0088s latency).
됩니다.
두 가지 답변 모두 : n nmap 필요 없음 / 아니오 sudo 필수 .
$ arp
xenoterracides를 기반으로 다음 ip neigh
과 hosts
같이 대답하십시오 .
#!/usr/bin/env python
"""List all hosts with their IP adress of the current network."""
import os
out = os.popen('ip neigh').read().splitlines()
for i, line in enumerate(out, start=1):
ip = line.split(' ')[0]
h = os.popen('host {}'.format(ip)).read()
hostname = h.split(' ')[-1]
print("{:>3}: {} ({})".format(i, hostname.strip(), ip))
통해 다운로드
wget https://gist.githubusercontent.com/MartinThoma/699ae445b8a08b5afd16f7d6f5e5d0f8/raw/577fc32b57a7f9e66fdc9be60e7e498bbec7951a/neighbors.py