Ngrep

Packet analyser


title: "Ngrep" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["network-analyzers", "unix-network-related-software", "windows-security-software", "macos-security-software", "free-software-programmed-in-c", "free-network-management-software", "software-using-the-bsd-license"] description: "Packet analyser" topic_path: "technology/operating-systems" source: "https://en.wikipedia.org/wiki/Ngrep" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0

::summary Packet analyser ::

::data[format=table title="Infobox software"]

FieldValue
namengrep
screenshot[[Image:Ngrep-console.png
captionngrep console output
developerJordan Ritter
latest release version
latest release date
operating_systemLinux, Solaris, illumos FreeBSD, NetBSD, OpenBSD, Mac OS X, additional *NIX systems, Windows
programming languageC
genrePacket analyzer
licenseBSD-style
website
::

| name = ngrep | screenshot = [[Image:Ngrep-console.png|280px|ngrep console output]] | caption = ngrep console output | developer = Jordan Ritter | latest release version = | latest release date = | operating_system = Linux, Solaris, illumos FreeBSD, NetBSD, OpenBSD, Mac OS X, additional *NIX systems, Windows | programming language = C | genre = Packet analyzer | license = BSD-style | website = ngrep (network grep) is a network packet analyzer written by Jordan Ritter. It has a command-line interface, and relies upon the pcap library and the GNU regex library.

ngrep supports Berkeley Packet Filter (BPF) logic to select network sources or destinations or protocols, and also allows matching patterns or regular expressions in the data payload of packets using GNU grep syntax, showing packet data in a human-friendly way.

ngrep is an open source application, and the source code is available to download from the ngrep site on GitHub. It can be compiled and ported to multiple platforms, it works in many UNIX-like operating systems: Linux, Solaris, illumos, BSD, AIX, and also works on Microsoft Windows.

Functionality

ngrep is similar to tcpdump, but it has the ability to look for a regular expression in the payload of the packet, and show the matching packets on a screen or console. It allows users to see all unencrypted traffic being passed over the network, by putting the network interface into promiscuous mode.

ngrep with an appropriate BPF filter syntax, can be used to debug plain text protocols interactions like HTTP, SMTP, FTP, DNS, among others, or to search for a specific string or pattern, using a regular expression syntax.

ngrep also can be used to capture traffic on the wire and store pcap dump files, or to read files generated by other sniffer applications like tcpdump or wireshark.

ngrep has various options or command line arguments. The ngrep man page in UNIX-like operating systems show a list of available options.

Using ngrep

In these examples, it is assumed that eth0 is the used network interface.

  • Capture network traffic incoming/outgoing to/from eth0 interface and show parameters following HTTP (TCP/80) GET or POST methods ngrep -l -q -d eth0 -i "^GET |^POST " tcp and port 80
  • Capture network traffic incoming/outgoing to/from eth0 interface and show the HTTP (TCP/80) User-Agent string ngrep -l -q -d eth0 -i "User-Agent: " tcp and port 80
  • Capture network traffic incoming/outgoing to/from eth0 interface and show the DNS (UDP/53) querys and responses ngrep -l -q -d eth0 -i "" udp and port 53

Security

Capturing raw network traffic from an interface requires special privileges or superuser privileges on some platforms, especially on Unix-like systems. ngrep default behavior is to drop privileges in those platforms, running under a specific unprivileged user.

Like tcpdump, it is also possible to use ngrep for the specific purpose of intercepting and displaying the communications of another user or computer, or an entire network.

A privileged user running ngrep in a server or workstation connected to a device configured with port mirroring on a switch, router, or gateway, or connected to any other device used for network traffic capture on a LAN, MAN, or WAN, can watch all unencrypted information related to login ID's, passwords, or URLs and content of websites being viewed in that network.

Supported protocols

References

References

  1. LICENSE.txt file in the tarball
  2. [https://ngrep.sourceforge.net/download.html ngrep supported platforms]
  3. [http://www.stearns.org/doc/ngrep-intro.current.html ngrep and regular expressions]
  4. [https://ngrep.sourceforge.net/usage.html ngrep usage]

::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::

network-analyzersunix-network-related-softwarewindows-security-softwaremacos-security-softwarefree-software-programmed-in-cfree-network-management-softwaresoftware-using-the-bsd-license