waibunleung
V2EX  ›  PHP

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

  •  
  •   waibunleung · Apr 6, 2018 · 7288 views
    This topic created in 3134 days ago, the information mentioned may be changed or developed.

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

    14 replies  •  2018-04-24 17:09:59 +08:00
    murmur
    murmur
    Apr 6, 2018
    1
    wireshark 了解下
    只要先学会怎么用过滤器后面都好说
    waibunleung
    waibunleung
    OP
    Apr 6, 2018
    2
    @murmur mac 下面我用的是 charles
    有没有 charles 的方法?
    wangbenjun5
    wangbenjun5
    Apr 6, 2018
    3
    charles 只能抓 http 的包,wireshark 通吃 iso 七层模型所有包。。。
    guiqiqi
    guiqiqi
    Apr 6, 2018 via iPhone
    4
    个人觉得抓包和用什么发的没多大关系,主要是看走什么协议,看题主这个意思是走 HTTP,用 Wireshark 可以抓全局的包,不单单是浏览器,也有很多其他相似的软件(记得 fiddler 可以)题主可以试试,希望能帮助到你
    murmur
    murmur
    Apr 6, 2018
    5
    @guiqiqi fiddler 也是抓浏览器 http 包的 唯一不同的是跟高贵的查尔斯相比 fiddler 是 win 下基于.net 免费的。。
    sw10
    sw10
    Apr 7, 2018❤️2
    6
    设置 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
    dobelee
    Apr 7, 2018
    7
    fiddler 代理一下就 ok。
    wekw
    wekw
    Apr 7, 2018
    8
    curl 可以很方便的设置代理,设成 Charles 的 127.0.0.1:8888 就行了,我前段时间刚操作过。
    mengzhuo
    mengzhuo
    Apr 7, 2018
    9
    @wangbenjun5 #3

    3 层可以的,如果操作系统支持的话,连 2 层都可以……
    gdtv
    gdtv
    Apr 7, 2018 via Android
    10
    楼主或许可以先用 postman 发送请求试试
    bintianbaihua
    bintianbaihua
    Apr 7, 2018
    11
    wireshark 和 tcpdump 都可以抓, 命令都很简单, 搜一下就知道了
    hundan2020
    hundan2020
    Apr 7, 2018 via Android
    12
    其他的楼上都说了,我说一个。
    可以用 proxifier 设置,让 php 进程走指定通道,或者是全局走指定通道,然后开监听服务抓包。理论上可行。
    zjsxwc
    zjsxwc
    Apr 7, 2018
    13
    同局域网里,弄台电脑抓包,不过如果是发邮件加密(一般都是。。)的话抓了也没意义
    swat199538
    swat199538
    Apr 24, 2018
    14
    加单点 fiddler 复杂一点就 wireshark
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1313 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 21:06 · PVG 05:06 · LAX 13:06 · JFK 16:06
    ♥ Do have faith in what you're doing.