ndiff(1): Skillnad mellan sidversioner

Från Wiki.linux.se -Linux wikipedia på Svenska.
Hoppa till navigering Hoppa till sök
Ingen redigeringssammanfattning
 
Rad 484: Rad 484:
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på  
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på  
https://www.linux.se/kontaka-linux-se/
https://www.linux.se/kontaka-linux-se/
<BR><BR>Tack till [https://Datorservice.best Bromma Datorservice] som har  sponsrat [https://www.linux.se Linux.se] med webbhotell.
<BR><BR>Tack till [https://Datorhjalp.se Datorservice] som har  sponsrat [https://www.linux.se Linux.se] med webbhotell.


[[Kategori:Linuxmanual grupp 1]]
[[Kategori:Linuxmanual grupp 1]]
[[Kategori:Linuxmanual]]
[[Kategori:Linuxmanual]]

Nuvarande version från 12 augusti 2026 kl. 06.09


NAMN

ndiff – verktyg för att jämföra resultat från Nmap-skanningar

SYNOPSIS

ndiff [optioner] a.xml b.xml

BESKRIVNING

Ndiff är ett verktyg som hjälper till att jämföra Nmap-skanningar.

Det tar två Nmap XML-utdatafiler och skriver ut skillnaderna mellan dem.

Skillnader som observeras är:

  • värdtillstånd, exempelvis från up till down
  • porttillstånd, exempelvis från open till closed
  • tjänsteversioner, från -sV
  • OS-matchningar, från -O
  • skriptutdata

Ndiff jämför, precis som standardverktyget diff(1), två skanningar åt gången.

OPTIONS SUMMARY

-h, --help

Visa hjälpmeddelande och avsluta.

-v, --verbose

Ta med alla värdar och portar i utdatan, inte bara de som har ändrats.

--text

Skriv utdata i läsbart textformat.

--xml

Skriv utdata i maskinläsbart XML-format.
Dokumentstrukturen definieras i filen:
ndiff.dtd

som ingår i distributionen.

Alla andra argument behandlas som namn på Nmap XML-utdatafiler.

Exakt två sådana filer måste anges.

EXEMPEL

Följande exempel använder Ndiff för att jämföra resultatet från två Nmap-skanningar med olika optioner.

I den första skanningen används snabbskanning:

-F

vilket skannar färre portar för bättre hastighet.

I den andra skanningen används den större standarduppsättningen portar, och ett NSE-skript körs.

# nmap -F scanme.nmap.org -oX scanme-1.xml
# nmap --script=html-title scanme.nmap.org -oX scanme-2.xml
$ ndiff -v scanme-1.xml scanme-2.xml
-Nmap 5.35DC1 at 2010-07-16 12:09
+Nmap 5.35DC1 at 2010-07-16 12:13

 scanme.nmap.org (64.13.134.52):
 Host is up.
-Not shown: 95 filtered ports
+Not shown: 993 filtered ports
 PORT      STATE  SERVICE VERSION
 22/tcp    open   ssh
 25/tcp    closed smtp
 53/tcp    open   domain
+70/tcp    closed gopher
 80/tcp    open   http
+|_ html-title: Go ahead and ScanMe!
 113/tcp   closed auth
+31337/tcp closed Elite

Ändringar markeras med - eller + i början av raden.

Av utdatan syns att skanningen utan snabbskanningsoptionen -F hittade två ytterligare portar:

70
31337

Skriptet html-title gav dessutom extra utdata för port 80.

Av portantalet kan man dra slutsatsen att snabbskanningen skannade 100 portar:

  • 95 filtrerade
  • 3 öppna
  • 2 stängda

Den normala skanningen skannade 1000 portar:

  • 993 filtrerade
  • 3 öppna
  • 4 stängda

Optionen -v, eller --verbose, gjorde att Ndiff även visade portar som inte ändrats, som port 22 och 25.

Utan -v hade dessa inte visats.

UTDATA

Det finns två utdatalägen:

  • text
  • XML

Textutdata är standard och kan även väljas med optionen:

--text

Textutdata liknar en unified diff av Nmappens vanliga terminalutdata.

Varje rad föregås av ett tecken som anger om och hur raden ändrades.

-

Raden fanns i den första skanningen men inte i den andra.

+

Raden fanns i den andra skanningen men inte i den första.

En ändrad rad visas som en --rad följd av en +-rad.

Rader som inte ändrats föregås av ett blanktecken.

Exempel 1. Ndiff textutdata

I detta exempel fick port 80 på värden:

photos-cache-snc1.facebook.com

en tjänsteversion:

lighttpd 1.5.0

Värden på:

69.63.179.25

ändrade sitt reverse DNS-namn.

Värden på:

69.63.184.145

saknades helt i första skanningen men fanns i den andra.

-Nmap 4.85BETA3 at 2009-03-15 11:00
+Nmap 4.85BETA4 at 2009-03-18 11:00

 photos-cache-snc1.facebook.com (69.63.178.41):
 Host is up.
 Not shown: 99 filtered ports
 PORT   STATE SERVICE VERSION
-80/tcp open  http
+80/tcp open  http    lighttpd 1.5.0

-cm.out.snc1.tfbnw.net (69.63.179.25):
+mailout-snc1.facebook.com (69.63.179.25):
 Host is up.
 Not shown: 100 filtered ports

+69.63.184.145:
+Host is up.
+Not shown: 98 filtered ports
+PORT    STATE SERVICE  VERSION
+80/tcp  open  http     Apache httpd 1.3.41.fb1
+443/tcp open  ssl/http Apache httpd 1.3.41.fb1

XML-utdata

XML-utdata är avsett att bearbetas av andra program och väljs med optionen:

--xml

Formatet bygger på Nmaps XML-utdata, med några extra element för att ange skillnader.

XML-dokumentet omsluts av elementen:

nmapdiff
scandiff

Värdskillnader omsluts av:

hostdiff

Portskillnader omsluts av:

portdiff

Inuti hostdiff eller portdiff visar taggarna a och b tillståndet för värden eller porten i den första skanningen, a, respektive den andra skanningen, b.

Exempel 2. Ndiff XML-utdata

Följande XML-diff motsvarar samma skanningar som i exempel 1.

<?xml version="1.0" encoding="UTF-8"?>
<nmapdiff version="1">
  <scandiff>
    <hostdiff>
      <host>
        <status state="up"/>
        <address addr="69.63.178.41" addrtype="ipv4"/>
        <hostnames>
          <hostname name="photos-cache-snc1.facebook.com"/>
        </hostnames>
        <ports>
          <extraports count="99" state="filtered"/>
          <portdiff>
            <port portid="80" protocol="tcp">
              <state state="open"/>
              <a>
                <service name="http"/>
              </a>
              <b>
                <service name="http" product="lighttpd" version="1.5.0"/>
              </b>
            </port>
          </portdiff>
        </ports>
      </host>
    </hostdiff>
    <hostdiff>
      <host>
        <status state="up"/>
        <address addr="69.63.179.25" addrtype="ipv4"/>
        <hostnames>
          <a>
            <hostname name="cm.out.snc1.tfbnw.net"/>
          </a>
          <b>
            <hostname name="mailout-snc1.facebook.com"/>
          </b>
        </hostnames>
        <ports>
          <extraports count="100" state="filtered"/>
        </ports>
      </host>
    </hostdiff>
    <hostdiff>
      <b>
        <host>
          <status state="up"/>
          <address addr="69.63.184.145" addrtype="ipv4"/>
          <ports>
            <extraports count="98" state="filtered"/>
            <port portid="80" protocol="tcp">
              <state state="open"/>
              <service name="http" product="Apache httpd"
                       version="1.3.41.fb1"/>
            </port>
            <port portid="443" protocol="tcp">
              <state state="open"/>
              <service name="http" product="Apache httpd" tunnel="ssl"
                       version="1.3.41.fb1"/>
            </port>
          </ports>
        </host>
      </b>
    </hostdiff>
  </scandiff>
</nmapdiff>

Observera att port 80 för photos-cache-snc1.facebook.com finns i portdiff-taggar.

För 69.63.179.25 finns det gamla värdnamnet i a-taggar och det nya i b-taggar.

För den nya värden 69.63.184.145 finns en b i hostdiff utan motsvarande a. Det anger att det saknades information om värden i den första skanningen.

PERIODISKA DIFFAR

Med Nmap, Ndiff, cron och ett skalskript är det möjligt att skanna ett nätverk dagligen och få e-postrapporter om nätverkets tillstånd och ändringar sedan föregående skanning.

Exempel 3. Skanna ett nätverk periodiskt med Ndiff och cron

#!/bin/sh
TARGETS="targets"
OPTIONS="-v -T4 -F -sV"
date=`date +%F`
cd /root/scans
nmap $OPTIONS $TARGETS -oA scan-$date > /dev/null
if [ -e scan-prev.xml ]; then
        ndiff scan-prev.xml scan-$date.xml > diff-$date
        echo "*** NDIFF RESULTS ***"
        cat diff-$date
        echo
fi
echo "*** NMAP RESULTS ***"
cat scan-$date.nmap
ln -sf scan-$date.xml scan-prev.xml

Om skriptet sparas som:

/root/scan-ndiff.sh

kan följande rad läggas till i roots crontab:

0 12 * * * /root/scan-ndiff.sh

AVSLUTNINGSKOD

Avslutningskoden anger om skanningarna är lika.

0

Skanningarna är lika i alla avseenden som Ndiff känner till.

1

Skanningarna skiljer sig åt.

2

Ett körningsfel inträffade, till exempel att en fil inte kunde öppnas.

FEL

Fel rapporteras till Nmaps utvecklingssändlista:

dev@nmap.org

HISTORIK

Ndiff började som ett projekt av Michael Pattrick under Google Summer of Code 2008.

Michael designade programmet och ledde diskussionen om dess utdataformat.

Han skrev versioner av programmet i Perl och C++, men sommaren tog slut kort efter att beslutet fattats att skriva om programmet i Python för Windows- och Zenmap-kompatibilitet.

Python-versionen skrevs av David Fifield.

James Levine släppte år 2000 ett Perl-skript med namnet Ndiff och liknande funktionalitet.

FÖRFATTARE

  • David Fifield <david@bamsoftware.com>
  • Michael Pattrick <mpattrick@rhinovirus.org>

WEBBPLATS

https://nmap.org/ndiff/

ANMÄRKNINGAR

Notering 1, released:

https://seclists.org/nmap-hackers/2000/315

KOLOFON

Denna sida är en del av projektet nmap, en nätverksskanner.

Information om projektet finns på:

http://nmap.org/

Felrapporter för manualsidan skickas till:

dev@nmap.org

Sidan hämtades från projektets uppströms Git-spegel av Subversion-förrådet:

https://github.com/nmap/nmap

den 24 maj 2026.

Vid den tidpunkten var den senaste hittade commiten daterad den 18 maj 2026.

Om du upptäcker renderingsproblem i HTML-versionen av sidan, eller anser att det finns en bättre eller mer aktuell källa, kan du skicka e-post till:

man-pages@man7.org

KORT SAMMANFATTNING

ndiff jämför två Nmap XML-resultatfiler.

Kör två skanningar till XML:

nmap -oX scan-1.xml mål
nmap -oX scan-2.xml mål

Jämför skanningarna:

ndiff scan-1.xml scan-2.xml

Visa även oförändrade värdar och portar:

ndiff -v scan-1.xml scan-2.xml

Skriv textutdata:

ndiff --text scan-1.xml scan-2.xml

Skriv XML-utdata:

ndiff --xml scan-1.xml scan-2.xml

Tolka avslutningskod:

0 = inga skillnader
1 = skillnader finns
2 = körningsfel

Sidslut

Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/ndiff.1.html Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorservice som har sponsrat Linux.se med webbhotell.