ndiff(1): Skillnad mellan sidversioner

Från Wiki.linux.se -Linux wikipedia på Svenska.
Hoppa till navigering Hoppa till sök
(Skapade sidan med '= 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/ <BR><BR>Tack till [https://Datorservice.best Bromma Datorservice] som har sponsrat [https://www.linux.se Linux.se] med webbhotell. Kategori:Linuxmanual grupp 1 Kategori:Linuxmanu...')
 
Ingen redigeringssammanfattning
 
Rad 1: Rad 1:
{{DISPLAYTITLE:ndiff(1)}}
== NAMN ==
'''ndiff''' – verktyg för att jämföra resultat från Nmap-skanningar
== SYNOPSIS ==
<pre>
ndiff [optioner] a.xml b.xml
</pre>
== 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:
<pre>
ndiff.dtd
</pre>
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:
<pre>
-F
</pre>
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.
<pre>
# 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
</pre>
Ändringar markeras med '''-''' eller '''+''' i början av raden.
Av utdatan syns att skanningen utan snabbskanningsoptionen '''-F''' hittade två ytterligare portar:
<pre>
70
31337
</pre>
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:
<pre>
--text
</pre>
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:
<pre>
photos-cache-snc1.facebook.com
</pre>
en tjänsteversion:
<pre>
lighttpd 1.5.0
</pre>
Värden på:
<pre>
69.63.179.25
</pre>
ändrade sitt reverse DNS-namn.
Värden på:
<pre>
69.63.184.145
</pre>
saknades helt i första skanningen men fanns i den andra.
<pre>
-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
</pre>
=== XML-utdata ===
XML-utdata är avsett att bearbetas av andra program och väljs med optionen:
<pre>
--xml
</pre>
Formatet bygger på Nmaps XML-utdata, med några extra element för att ange skillnader.
XML-dokumentet omsluts av elementen:
<pre>
nmapdiff
scandiff
</pre>
Värdskillnader omsluts av:
<pre>
hostdiff
</pre>
Portskillnader omsluts av:
<pre>
portdiff
</pre>
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.
<pre>
<?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>
</pre>
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 ===
<pre>
#!/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
</pre>
Om skriptet sparas som:
<pre>
/root/scan-ndiff.sh
</pre>
kan följande rad läggas till i roots crontab:
<pre>
0 12 * * * /root/scan-ndiff.sh
</pre>
== 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:
<pre>
dev@nmap.org
</pre>
== 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 ==
<pre>
https://nmap.org/ndiff/
</pre>
== ANMÄRKNINGAR ==
Notering 1, released:
<pre>
https://seclists.org/nmap-hackers/2000/315
</pre>
== KOLOFON ==
Denna sida är en del av projektet '''nmap''', en nätverksskanner.
Information om projektet finns på:
<pre>
http://nmap.org/
</pre>
Felrapporter för manualsidan skickas till:
<pre>
dev@nmap.org
</pre>
Sidan hämtades från projektets uppströms Git-spegel av Subversion-förrådet:
<pre>
https://github.com/nmap/nmap
</pre>
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:
<pre>
man-pages@man7.org
</pre>
== KORT SAMMANFATTNING ==
'''ndiff''' jämför två Nmap XML-resultatfiler.
Kör två skanningar till XML:
<pre>
nmap -oX scan-1.xml mål
nmap -oX scan-2.xml mål
</pre>
Jämför skanningarna:
<pre>
ndiff scan-1.xml scan-2.xml
</pre>
Visa även oförändrade värdar och portar:
<pre>
ndiff -v scan-1.xml scan-2.xml
</pre>
Skriv textutdata:
<pre>
ndiff --text scan-1.xml scan-2.xml
</pre>
Skriv XML-utdata:
<pre>
ndiff --xml scan-1.xml scan-2.xml
</pre>
Tolka avslutningskod:
<pre>
0 = inga skillnader
1 = skillnader finns
2 = körningsfel
</pre>
= Sidslut =
= Sidslut =



Nuvarande version från 2 augusti 2026 kl. 10.53


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 Bromma Datorservice som har sponsrat Linux.se med webbhotell.