抓包工具在调试服务时候的应用

asmcos · · 399 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

开发多年的服务器高手们,无论你是PHP,NodeJS,Java,Python,Golang。都会遇到一个问题。
当客户端测试一个api接口出错时。
你在心里嘀咕?

  1. 他访问地址是不是拼写对了?
  2. 他的服务有没有到我的controller(route)里面?
  3. 他的参数对不对?
  4. 我返回的对吗?
    。。。。。
    当这一系列发生时,大家一顿暂停服务器,加一系列printf。

多次增加printf后,可能找到了问题。有需要把printf再次删除,但是这会非常耗时,非常的麻烦。
所以,我实在忍无可忍,写了一个抓包解析http协议的工具。
代码在 https://github.com/asmcos/sniffer

他的作用是抓包,解析http协议,将包的内容打印出来。

192.168.10.94->111.13.134.251:58684->80

hq.sinajs.cn
GET /rn=1616738020823&list=sh603983,sh603983_i,bk_new_qtxy HTTP/1.1 
Accept-Language :[zh-CN,zh;q=0.9]
Connection :[keep-alive]
User-Agent :[Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4442.4 Safari/537.36]
Accept :[*/*]
Referer :[http://finance.sina.com.cn/realstock/company/sh603983/nc.shtml]
Accept-Encoding :[gzip, deflate]

111.13.134.251->192.168.10.94:80->58684

HTTP/1.1 200 OK
Content-Encoding :[gzip]
Cache-Control :[no-cache]
Content-Length :[3588]
Connection :[Keep-Alive]
Content-Type :[application/javascript; charset=GB18030]

并且我增加了 动态可配置参数

{
  "name": "sniffer",
  "device": "en0",
  "port":80,

  "serverurl":"http://127.0.0.1:1337/",
  "clientDeviceid":"2",
  "clientDevicekey":"43ffweqr3",


 
  "jslength":1000,
  "htmllength":0,


  "dumpanystr":"text/plain",
  "dumpanylen":200

}

这个配置可以有好几个功能,

  1. 动态配置 网卡
  2. 配置端口号,抓取你的服务器端口
  3. 配以配置将抓取的日志存放到服务器。
    并且我提供了一个服务器,你可以直接存进去。
  4. 可以配置打印任意返回格式,和打印长度
    例如繁琐的html,你就打印前1000个字节,基本就可以看出来返回对不对了。

存储这个数据的服务器,代码我也放在了github上
https://github.com/asmcos/AIDatas
这个是采用strapi搭建的

到这里,我还没有完成
我还在写另一个项目
analytics,日志分析器

日志分析器,类似awstats,他不但可以分析用户访问服务器的访问量。
还可以做 api 说明,将访问的api做中文对应说明。

image

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:asmcos

查看原文:抓包工具在调试服务时候的应用

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

399 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传