加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 没有tcpdump的转储tcp连接

发布时间:2020-12-13 18:26:50 所属栏目:Linux 来源:网络整理
导读:在centos框中,我喜欢转储tcp连接 – 我想看看服务器是否尝试向某个IP发送请求.通常tcpdump可以解决问题 – 但是没有安装tcpdump,并且安装软件不是一种选择(因为公司政策).我担心netstat不会向我显示单个请求. 所以我想知道我还有其他选择.我在服务器上有root
在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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读