网络抓包-抓包工具tcpdump的使用与数据分析

1.测试背景

  • 本次测试选用两台不同的服务器,ip分别为.233和.246,233服务器为客户端,246服务器为服务端。利用tcp协议就行socket通信。socket网络编程部分示例代码为基本的通信代码,需要了解tcp网络通讯的基本协议与过程。服务器上采用tcpdump进行抓包,并保存抓取的包在windows上用wireshark进行包分析。

2.客户端与服务端源码

2.1客户端代码:

#include <sys/types.h>          /* See NOTES */
#include <sys/socket.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdio.h>/* socket* connect* send/recv*/#define SERVER_PORT 8888int main(int argc, char **argv)
{int iSocketClient;struct sockaddr_in tSocketServerAddr;int iRet;unsigned char ucSendBuf[1000];int iSendLen;if (argc != 2){printf("Usage:\n");printf("%s <server_ip>\n", argv[0]);return -1;}iSocketClient = socket(AF_INET, SOCK_STREAM, 0);tSocketServerAddr.sin_family      = AF_INET;tSocketServerAddr.sin_port        = htons(SERVER_PORT);  /* host to net, short *///tSocketServerAddr.sin_addr.s_addr = INADDR_ANY;if (0 == inet_aton(argv[1], &tSocketServerAddr.sin_addr)){printf("invalid server_ip\n");return -1;}memset(tSocketServerAddr.sin_zero, 0, 8);iRet = connect(iSocketClient, (const struct sockaddr *)&tSocketServerAddr, sizeof(struct sockaddr));	if (-1 == iRet){printf("connect error!\n");return -1;}while (1){if (fgets(ucSendBuf, 999, stdin)){iSendLen = send(iSocketClient, ucSendBuf, strlen(ucSendBuf), 0);if (iSendLen <= 0){close(iSocketClient);return -1;}}}return 0;
}

2.2服务端代码:

#include <sys/types.h>          /* See NOTES */
#include <sys/socket.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdio.h>
#include <signal.h>/* socket* bind* listen* accept* send/recv*/#define SERVER_PORT 8888
#define BACKLOG     10int main(int argc, char **argv)
{int iSocketServer;int iSocketClient;struct sockaddr_in tSocketServerAddr;struct sockaddr_in tSocketClientAddr;int iRet;int iAddrLen;int iRecvLen;unsigned char ucRecvBuf[1000];int iClientNum = -1;signal(SIGCHLD,SIG_IGN);iSocketServer = socket(AF_INET, SOCK_STREAM, 0);if (-1 == iSocketServer){printf("socket error!\n");return -1;}tSocketServerAddr.sin_family      = AF_INET;tSocketServerAddr.sin_port        = htons(SERVER_PORT);  /* host to net, short */tSocketServerAddr.sin_addr.s_addr = INADDR_ANY;memset(tSocketServerAddr.sin_zero, 0, 8);iRet = bind(iSocketServer, (const struct sockaddr *)&tSocketServerAddr, sizeof(struct sockaddr));if (-1 == iRet){printf("bind error!\n");return -1;}iRet = listen(iSocketServer, BACKLOG);if (-1 == iRet){printf("listen error!\n");return -1;}while (1){iAddrLen = sizeof(struct sockaddr);iSocketClient = accept(iSocketServer, (struct sockaddr *)&tSocketClientAddr, &iAddrLen);if (-1 != iSocketClient){iClientNum++;printf("Get connect from client %d : %s\n",  iClientNum, inet_ntoa(tSocketClientAddr.sin_addr));if (!fork()){/* 子进程的源码 */while (1){/* 接收客户端发来的数据并显示出来 */iRecvLen = recv(iSocketClient, ucRecvBuf, 999, 0);if (iRecvLen <= 0){close(iSocketClient);return -1;}else{ucRecvBuf[iRecvLen] = '\0';printf("Get Msg From Client %d: %s\n", iClientNum, ucRecvBuf);}}				}}}close(iSocketServer);return 0;
}

3.开始抓包。

3.1 ifconfig-查询网卡信息

  • 当前网卡为eno1
    在这里插入图片描述

3.2 sudo tcpdump -i eno1 port 8888 -w ./3.cap

  • -i指定数据包经过的网卡,port指定目标端口 -w指定保存的包路径。

3.3 启动客户端与服务端

在这里插入图片描述
在这里插入图片描述

3.4查看tcp端口连接情况

  • netstat -ant | grep 8888
    在这里插入图片描述

3.5 往服务端发送数据

-此处发送 55555555字符串。服务端已经接受了数据,表明通讯正常。
在这里插入图片描述

4.分析数据包

  • 前3条为三次握手内容
  • 4,5条为客户端往服务端发送数据 55555555
  • 数据已经正常解析出来了。
    在这里插入图片描述
    在这里插入图片描述
  • sudo tcpdump -ne -v -x -i eno1 port 8888
    此命令可以实时看到过滤的数据包
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/24521.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过抓包研究TCP的连接、传输、断开

1-建立连接TCP三次握手 建立一个 TCP 连接需要“三次握手”&#xff0c;缺一不可 &#xff1a; 一次握手:客户端发送带有 SYN&#xff08;SEQx&#xff09; 标志的数据包 -> 服务端&#xff0c;然后客户端进入 SYN_SEND 状态&#xff0c;等待服务器的确认&#xff1b;二次握…

Winpcap进行抓包,分析数据包结构并统计IP流量

2020年华科计算机网络实验 文末有完整代码&#xff0c;仅限参考 一.实验目的 随着计算机网络技术的飞速发展&#xff0c;网络为社会经济做出越来越多的贡献&#xff0c;可以说计算机网络的发展已经成为现代社会进步的一个重要标志。但同时&#xff0c;计算机犯罪、黑客攻击、…

HttpCanary抓包断网问题解决方式

以上操作步骤完成&#xff0c;即可完成抓包操作

原生JS实现代码高亮功能

实现步骤 分析如何实现该功能了解词法结构Javascript的产生式少废话&#xff0c;上代码 分析如何实现该功能 平时我们在使用一些代码编辑器或者Markdown时很好奇它的代码高亮是如何 实现的。其实原理也挺简单的,就是区分代码内容的不同token并加以颜色标识。 我们将以js规则为例…

从六个维度来分析:代码、无代码、低代码、AI提示代码、AI低代码

IT行业最不缺少概念&#xff0c;再多几个也无妨&#xff0c;反正大部分的概念大部分人都不会真正弄懂。AI低代码是我们新创的&#xff0c;AIGC低代码、AI低代码、智能开发、AI生成式开发、AIGS(AI生成软件)等等&#xff0c;这些概念已经呼之欲出了&#xff0c;不过还是觉得AI低…

Transformer:一种图灵完备的神经网络

点击下方卡片&#xff0c;关注“CVer”公众号 AI/CV重磅干货&#xff0c;第一时间送达 点击进入—>【Transformer】微信技术交流群 作者&#xff1a;张晨珩&#xff08;北京大学23级博士生&#xff09;已授权 https://zhuanlan.zhihu.com/p/611257510 论文: Attention is Tu…

什么是元宇宙?元宇宙在 2023 年将走向何方

2023 年&#xff0c;元宇宙是当今技术领域的热门话题。除了新兴的人工智能和物联网技术&#xff0c;元宇宙服务提供商也在争先恐后地进行创新&#xff0c;以提供企业和消费者解决方案。 元宇宙曾经是技术先驱和数据科学家的专属&#xff0c;现在正在扩大到影响每个人。这种环…

Midjourney|文心一格prompt教程[技巧篇]:生成多样性、增加艺术风格、图片二次修改、渐进优化、权重、灯光设置等17个技巧等你来学

Midjourney|文心一格prompt教程[技巧篇]&#xff1a;生成多样性、增加艺术风格、图片二次修改、渐进优化、权重、灯光设置等17个技巧等你来学 1.技巧一&#xff1a;临摹 我认为学习图片类的 prompt&#xff0c;跟学习画画是类似的&#xff0c;最好的学习方法不是直接用模板。…

新旧iphone短信转移,苹果旧手机短信导入新手机

短信携带重要信息内容&#xff0c;新旧iphone短信转移&#xff1f;您可能知道&#xff0c;iOS设备上不支持导出iPhone简讯&#xff0c;更不用说打印iPhone上的短信了。幸运的是&#xff0c;有一些可行的方法可以将iPhone短信导入到另一个iPhone&#xff0c;继续阅读以获得更多帮…

苹果手机怎么发语音短信?

说到语音&#xff0c;大家最熟悉的就是用微信发语音了&#xff0c;但是微信发语音的前提是必须是好友&#xff0c; 对于企业来说&#xff0c;使用范围还是受限&#xff0c;其实比微信语音应用范围广的就是语音短信&#xff0c;通过语音通知的新式&#xff0c;只要用户手机能正常…

iPhone苹果手机短信如何批量删除苹果iPhone手机短信?

iPhone苹果手机短信如何批量删除苹果iPhone手机短信&#xff1f; 1、iPhone苹果手机短信较多&#xff0c;如何才能快捷的批量删除苹果iPhone手机短信。 2、打开苹果iPhone手机设置&#xff1b; 3、在iPhone苹果手机设置内找到通用并点击进入&#xff1b; 4、在苹果iPhone手机设…

苹果手机短信如何转入Android手机,苹果手机怎么将短信备份导入到安卓手机?...

iPhone手机的短信无法直接导入安卓手机&#xff0c;在将苹果手机换为安卓手机时&#xff0c;短信往往无法迁移&#xff0c;这让我们很苦恼。小编试了QQ同步助手&#xff0c;百度网盘等同步类软件&#xff0c;往往只能备份通讯录&#xff0c;而无法备份短信。本文将介绍怎么样通…

小智AI教你制造业中如何应用ChatGPT实现智能化生产

制造业是现代社会经济发展的关键行业之一。然而&#xff0c;在制造业的生产过程中&#xff0c;存在着许多的瓶颈和问题&#xff0c;比如人力资源不足、生产线效率低下、生产成本高昂等等。这些问题导致制造业在生产效率、生产质量等方面面临着诸多挑战&#xff0c;因此&#xf…

ChatGPT Creator 刚刚启动了一个 AI 检测器,我们最终能否检测到 AI 编写的内容?

在过去的几个月里,我们看到许多工具都在尝试检测 AI 编写的文本。 然而,就在昨天,ChatGPT 背后的公司 OpenAI 推出了自己的文本分类器,旨在区分人工智能编写的文本和人类编写的文本。这是一个有一些限制的免费工具,但它仍然可以帮助您检测某些内容是否由 AI 编写。 我已…

Meta带头甩卖 VR头显打起价格战

新春三月&#xff0c;准备入手VR头显的“等等党”终于迎来降价利好。以Meta为首的一众VR厂商们纷纷打折&#xff0c;无论是为了清理库存、回收成本还是让步硬件新品&#xff0c;普通消费者都喜闻乐见。 上周五&#xff0c;Meta 率先官宣Meta Quest Pro与Meta Quest 2 的256GB版…

【青少年编程】【三级】打气球游戏

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 微信后台回复“资料下载”可获取以往学习的材料&#xff08;视频、代码、文档&…

android 儿童 游戏,7-10岁儿童游戏大全

亲子游戏是亲子之间交往的重要形式。目的是培养小孩的认知和自理能力。最好的亲子教育,莫过于和宝宝一起玩丰富多彩的亲子游戏了。亲子游戏不仅让宝宝能玩得高兴,也能拉近你和宝宝的距离&#xff0c;何乐而不为&#xff1f; 7-10岁儿童游戏大全top1&#xff1a;春夏秋冬 春夏秋…

小朋友做游戏

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 牛牛是一个幼儿园老师&#xff0c;他经常带小朋友们一起做游戏。 现在&#xff0c;牛牛的班里有AAA个安静的小朋友和BBB个闹腾的小朋友&#xff0c;牛牛想要从中选出恰好nnn个人来做…

益智app游戏 android,儿童宝宝益智游戏

儿童宝宝益智游戏app是一款游戏型的幼儿启蒙教育软件&#xff0c;宝宝们在这里可以通过玩游戏的方式学习到各种基础知识&#xff0c;很好地激发他们的学习兴趣。详细内容请感兴趣的朋友前来西西下载体验&#xff01; 应用简介 儿童宝宝系列教育应用是根据教育部新颁布的《3-6岁…

推荐几款适合孩子玩的编程游戏

在上一篇文章《孩子喜欢玩iPad等电子产品怎么办》中&#xff0c;我们鼓励家长合理控制孩子的屏幕时间&#xff0c;与此同时&#xff0c;为孩子挑选合适的电子消费内容同样重要。 今天就给大家推荐几款可以鼓励孩子玩的游戏&#xff0c;让孩子们在玩游戏的过程中学习编程。 1. k…