linux – 没有tcpdump的转储tcp连接

前端之家收集整理的这篇文章主要介绍了linux – 没有tcpdump的转储tcp连接前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在centos框中,我喜欢转储tcp连接 – 我想看看服务器是否尝试向某个IP发送请求.通常tcpdump可以解决问题 – 但是没有安装tcpdump,并且安装软件不是一种选择(因为公司政策).我担心netstat不会向我显示单个请求.

所以我想知道我还有其他选择.我在服务器上有root访问权限.

解决方法

你肯定有 python吗?
from socket import * 
from struct import unpack 
import sys 

INTERFACE = "eth0"
TARGET = "8.8.8.8" 

if __name__ == "__main__": 
  sock = socket(AF_PACKET,SOCK_DGRAM,0x0800) 
  sock.bind((INTERFACE,0x0800)) 
  while True: 
    data = sock.recvfrom(1500,0)[0] 
    ip = inet_ntop(AF_INET,data[12:16]) 
    if ip == TARGET: 
      print "GOT TARGET" 
      sys.exit(1)

这将以“GOT TARGET”退出,提供返回匹配的IP地址.由于TCP必须在握手期间发回一些东西,因此应该从特定目标地址捕获任何内容.它不关心协议是TCP还是UDP(我也不检查).

别忘了改变TARGET和INTERFACE.

猜你在找的Linux相关文章