# Ngrep
ngrep (network grep), Jordan Ritter tarafından yazılmış bir ağ paket çözümleyicisidir. Bir komut satırı arayüzüne sahiptir, pcap kütüphanesine ve GNU regex kütüphanesine dayanır.
ngrep, ağ kaynaklarını veya hedeflerini veya protokollerini seçmek için Berkeley Packet Filter (BPF) mantığını destekler ve ayrıca GNU kullanarak paketlerin veri yükünde kalıpların veya düzenli ifadelerin eşleştirilmesine ve paket verilerinin insan dostu bir şekilde gösteren grep sözdizimine izin verir.
ngrep açık kaynaklı bir uygulamadır ve kaynak kodu GitHub üzerindeki ngrep sitesinden indirilebilir. Derlenebilir ve birden fazla platforma taşınabilir, birçok UNIX benzeri işletim sistemleri: Linux, Solaris, illumos, BSD, AIX ve ayrıca Microsoft Windows üzerinde de çalışır.


## İşlevsellik.
ngrep tcpdump'a benzer, ancak paketin yükünde bir düzenli ifade (regex) arama ve eşleşen paketleri bir ekranda veya konsolda gösterme yeteneğine sahiptir. Kullanıcıların ağ arayüzünü promiscuous moda geçirerek ağ üzerinden geçen tüm şifrelenmemiş trafiği görmelerini sağlar.
ngrep, uygun bir BPF filtre sözdizimiyle, HTTP, SMTP, FTP, DNS gibi düz metin protokol etkileşimlerinde hata ayıklamak veya grep düzenli ifade sözdizimini kullanarak belirli bir dize veya desen aramak için kullanılabilir.
ngrep ayrıca kablo üzerindeki trafiği yakalamak ve pcap döküm dosyalarını saklamak veya tcpdump veya wireshark gibi diğer sniffer uygulamaları tarafından oluşturulan dosyaları okumak için de kullanılabilir.
ngrep'in çeşitli seçenekleri veya komut satırı argümanları vardır. 
ngrep yardım sayfası (man page) Unix benzeri işletim sistemleri içinde mevcut seçeneklerin bir listesini gösterir.


## ngrep kullanım örnekleri.
Aşağıdaki örneklerde, kullanılan ağ arayüzünün "eth0" olduğu varsayılmaktadır.
  - eth0 arayüzüne gelen/giden ağ trafiğini yakalar ve HTTP (TCP/80) GET veya POST yöntemlerini takip eden parametreleri gösterir:
$ ngrep -l -q -d eth0 -i "^GET |^POST " tcp and port 80
  - eth0 arayüzüne gelen/giden ağ trafiğini yakalar ve HTTP (TCP/80) Kullanıcı Aracısı dizesini gösterir:
$ ngrep -l -q -d eth0 -i "User-Agent: " tcp and port 80
  - eth0 arayüzüne gelen/giden ağ trafiğini yakalar ve DNS (UDP/53) sorgularını ve yanıtlarını gösterir:
$ ngrep -l -q -d eth0 -i "" udp and port 53


## Güvenlik.
Bir arayüzden ham ağ trafiğini yakalamak, bazı platformlarda, özellikle Unix benzeri sistemlerde özel ayrıcalıklar veya süper kullanıcı ayrıcalıkları gerektirir. ngrep varsayılan davranışı, bu platformlarda ayrıcalıkları bırakmak ve belirli bir ayrıcalıksız kullanıcı altında çalışmaktır.
Tcpdump gibi, ngrep'i başka bir kullanıcının veya bilgisayarın ya da tüm bir ağın iletişimini yakalamak ve görüntülemek amacıyla kullanmak da mümkündür.
Bir ağ anahtarı, yönlendirici veya ağ geçidi üzerinde port aynalama ile yapılandırılmış bir cihaza bağlı bir sunucu veya iş istasyonunda ngrep çalıştıran ayrıcalıklı bir kullanıcı veya bir LAN üzerinde ağ trafiğini yakalamak için kullanılan başka bir cihaza bağlı, MAN veya WAN, oturum açma kimlikleri, parolalar veya URLler ve bu ağda görüntülenen web sitelerinin içeriği ile ilgili tüm şifrelenmemiş bilgileri izleyebilir.


## Desteklenen protokoller.
  - IPv4 ve IPv6, Internet Protocol version 4 ve version 6
  - TCP, Transmission Control Protocol
  - UDP, User Datagram Protocol
  - ICMPv4 ve ICMPv6, Internet Control Message Protocol version 4 ve version 6
  - IGMP, Internet Group Management Protocol
  - Ethernet, IEEE 802.3
  - PPP, Point to Point Protocol
  - SLIP, Serial Line Internet Protocol
  - FDDI, Fiber Data Distribution Protocol
  - Token Ring, IEEE 802.5