通过 PHP 代码发送的请求,要怎么抓包? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
waibunleung
V2EX    PHP

通过 PHP 代码发送的请求,要怎么抓包?

  •  
  •   waibunleung 2018-04-06 23:12:05 +08:00 6580 次点击
    这是一个创建于 2749 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近遇到一个问题,要通过 php 调用第三方邮件发送接口,但是写出来的代码请求返回的是 200,不过却没有成功发送邮件 所以想抓包看看通过 php 发出的请求是怎样的,不过不知道要用什么方法抓这个包,开发是在 mac 下的,charles 好像只能抓到浏览器的包,不知道怎么抓 php 发出的请求, 有想过用 php://input 打印,不过它不支持 formdata 的数据,因为邮件发送是带附件的,用的是 formdata 的方式,所以想问问大家这情况有什么好的处理方法么?

    14 条回复    2018-04-24 17:09:59 +08:00
    murmur
        1
    murmur  
       2018-04-06 23:12:36 +08:00
    wireshark 了解下
    只要先学会怎么用过滤器后面都好说
    waibunleung
        2
    waibunleung  
    OP
       2018-04-06 23:13:49 +08:00
    @murmur mac 下面我用的是 charles
    有没有 charles 的方法?
    wangbenjun5
        3
    wangbenjun5  
       2018-04-06 23:20:29 +08:00
    charles 只能抓 http 的包,wireshark 通吃 iso 七层模型所有包。。。
    guiqiqi
        4
    guiqiqi  
       2018-04-06 23:20:33 +08:00 via iPhone
    个人觉得抓包和用什么发的没多大关系,主要是看走什么协议,看题主这个意思是走 HTTP,用 Wireshark 可以抓全局的包,不单单是浏览器,也有很多其他相似的软件(记得 fiddler 可以)题主可以试试,希望能帮助到你
    murmur
        5
    murmur  
       2018-04-06 23:28:50 +08:00
    @guiqiqi fiddler 也是抓浏览器 http 包的 唯一不同的是跟高贵的查尔斯相比 fiddler 是 win 下基于.net 免费的。。
    sw10
        6
    sw10  
       2018-04-07 00:05:25 +08:00   2
    设置 PHP 的 HTTP Client 的代理为 charles 的代理就行,默认为 8888。

    大概这样子:
    ```php
    $aCOntext= array(
    'http' => array(
    'proxy' => 'tcp://127.0.0.1:8888',
    ),
    );
    $cxCOntext= stream_context_create($aContext);

    $sFile = file_get_contents("http://www.google.com", false, $cxContext);

    echo $sFile;
    ```
    dobelee
        7
    dobelee  
       2018-04-07 00:10:50 +08:00
    fiddler 代理一下就 ok。
    wekw
        8
    wekw  
       2018-04-07 00:43:01 +08:00
    curl 可以很方便的设置代理,设成 Charles 的 127.0.0.1:8888 就行了,我前段时间刚操作过。
    mengzhuo
        9
    mengzhuo  
       2018-04-07 01:08:13 +08:00
    @wangbenjun5 #3

    3 层可以的,如果操作系统支持的话,连 2 层都可以……
    gdtv
        10
    gdtv  
       2018-04-07 05:38:39 +08:00 via Android
    楼主或许可以先用 postman 发送请求试试
    bintianbaihua
        11
    bintianbaihua  
       2018-04-07 09:06:04 +08:00
    wireshark 和 tcpdump 都可以抓, 命令都很简单, 搜一下就知道了
    hundan2020
        12
    hundan2020  
       2018-04-07 10:18:17 +08:00 via Android
    其他的楼上都说了,我说一个。
    可以用 proxifier 设置,让 php 进程走指定通道,或者是全局走指定通道,然后开监听服务抓包。理论上可行。
    zjsxwc
        13
    zjsxwc  
       2018-04-07 17:19:20 +08:00
    同局域网里,弄台电脑抓包,不过如果是发邮件加密(一般都是。。)的话抓了也没意义
    swat199538
        14
    swat199538  
       2018-04-24 17:09:59 +08:00
    加单点 fiddler 复杂一点就 wireshark
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2978 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 12:59 PVG 20:59 LAX 05:59 JFK 08:59
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86