python 可以伪造 ip 发送 http 请求吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
xinali
V2EX    Python

python 可以伪造 ip 发送 http 请求吗?

  •  
  •   xinali 2016-07-29 17:19:03 +08:00 18246 次点击
    这是一个创建于 3443 天前的主题,其中的信息可能已经有所发展或是发生改变。
    32 条回复    2018-02-21 19:33:15 +08:00
    holyghost
        1
    holyghost  
       2016-07-29 17:26:18 +08:00
    我们不提倡做坏事
    paw
        2
    paw  
       2016-07-29 17:30:39 +08:00
    伪造 IP 3 次握手都完不成..... 除非你能控制路由让你伪造的 IP 包转到你伪造源机器上去
    3dwelcome
        3
    3dwelcome  
       2016-07-29 17:37:44 +08:00 via Android
    找个代理发请求、 ip 包你修改了、那路由就没办法发送数据了。
    naomhan
        4
    naomhan  
       2016-07-29 17:53:31 +08:00
    requests.get(url, proxies={"http":"ip:port"})
    naomhan
        5
    naomhan  
       2016-07-29 17:54:18 +08:00
    不对 这叫代理了
    ovear
        6
    ovear  
       2016-07-29 17:55:36 +08:00
    X-REAL-IP
    tabris17
        7
    tabris17  
       2016-07-29 17:56:34 +08:00   1
    概率上有可能实现
    hard2reg
        8
    hard2reg  
       2016-07-29 18:20:02 +08:00
    我们不提倡做坏事
    ysc3839
        9
    ysc3839  
       2016-07-29 18:37:13 +08:00 via Android
    伪造 IP 的话数据都发到伪造的 IP 上了, 3 次握手不能完成,更不可能发送 HTTP 请求
    felixzhu
        10
    felixzhu  
       2016-07-29 18:40:01 +08:00
    不能伪造,一般都是找代理服务
    iyangyuan
        11
    iyangyuan  
       2016-07-29 19:09:42 +08:00 via iPhone
    伪命题
    autocar23
        12
    autocar23  
       2016-07-29 19:19:43 +08:00   6
    zythum
        13
    zythum  
       2016-07-29 19:51:05 +08:00
    伪造 ip 你就接不到包了.... 没发建立链路的。
    loalj
        14
    loalj  
       2016-07-29 20:11:05 +08:00   1
    有些 web 服务器校验客户端的真实 ip 是直接从 http headers 里边读,可以伪造 x-forward-for, x-real-ip 来欺骗 web 服务器,但是大部分都没办法通过这种办法来伪造。
    hxndg
        15
    hxndg  
       2016-07-29 20:16:00 +08:00
    表示我原先也想过这个问题
    wweir
        16
    wweir  
       2016-07-29 21:47:10 +08:00 via iPhone
    可以考虑 sip 不过这个跟 Python 没啥关系
    zaishanfeng
        17
    zaishanfeng  
       2016-07-29 21:51:04 +08:00 via Android
    这怎么可能 要是可以伪造岂不是乱套了
    msg7086
        18
    msg7086  
       2016-07-29 23:10:07 +08:00
    可以伪造,但是你怎么收包?
    cmaster
        19
    cmaster  
       2016-07-29 23:23:39 +08:00
    人家说不定是想 DDoS 呢?
    aeshfawre
        20
    aeshfawre  
       2016-07-29 23:32:21 +08:00
    据说不接收数据就可以,只发出去
    gefranks
        21
    gefranks  
       2016-07-29 23:47:35 +08:00
    这种伪造的包很有可能被一些路由直接丢弃,因为包的源不认识,这些包也不会被路由
    redsonic
        22
    redsonic  
       2016-07-30 00:23:08 +08:00   1
    撇开 TCP 三次握手,很早之前的 BGP 接入都可以伪源 ip 发包,后来 DDos 多了,运营商都按照 BCP38 来过滤源了。
    3dwelcome
        23
    3dwelcome  
       2016-07-30 00:51:07 +08:00 via Android
    三次握手、在第二个阶段模拟服务器返回伪造 ip 包和地址是完全可行的。但我没试过第三次客户端伪造源地址后、能否建立连接。

    也许可行、但这样就属于普通的 ddos 把服务器资源耗完的范畴、并不能传送数据。
    Mark3K
        24
    Mark3K  
       2016-07-30 01:08:50 +08:00
    scapy
    xieyudi1990
        25
    xieyudi1990  
       2016-07-30 03:41:40 +08:00
    如果说是 ip 包头那种,用 raw socket 试一下就好。不过我没试过,我估计 isp 没那么傻。
    如果是 http 里那个 x-forward-for ,我试过。 cnbeta 可以用这个刷票。
    GlobalNPC
        26
    GlobalNPC  
       2016-07-30 07:43:26 +08:00 via Android
    以前某文献库是读 headers 的,然后 h 就嘿嘿嘿
    qingchn
        27
    qingchn  
       2016-07-30 11:39:39 +08:00
    伪造 IP 有点难度,变通一下,使用代理。
    em70
        28
    em70  
       2016-07-30 11:56:32 +08:00
    如果能伪造 IP,哪些卖肉鸡卖代理的不就饿死了,存在即是合理
    jackyspy
        29
    jackyspy  
       2016-07-30 12:24:58 +08:00
    scapy ,想怎么玩就怎么玩
    jackyspy
        30
    jackyspy  
       2016-07-30 12:26:50 +08:00
    刚看错问题了。 tcp 无法伪造 ip ,除非你在某个核心网节点上。
    可以通过代理访问 http 达到你要的效果。
    pyufftj
        31
    pyufftj  
       2017-12-27 15:58:20 +08:00
    @jackyspy 那局域网中可以吗。
    zlun26981
        32
    zlun26981  
       2018-02-21 19:33:15 +08:00
    假设你是想在本地一台主机伪造多个 IP,然后通过 http 访问互联网一台服务器,让服务器觉得是有多台不同主机 /IP 来访问它。这个需求就有点 DDoS 的味道了。

    在网络层面你需要考虑三个问题:
    1.伪造完 IP,假设伪造 IP 与网关不在同一网段,这个数据包怎么送到出口路由器?
    2.就算数据已经送到出口路由器,出口路由器会将源 IP 做地址转换( NAT ),再送出互联网,那么这个数据包送到目标服务器,其源 IP 还是一个。
    3.无法完成 TCP 三次握手,你用伪造源 IP 给目标服务器发送 TCP_SYN,目标服务器给你所伪造的源 IP 对应的真实主机回 TCP_SYN-ACK,真实主机莫名其妙收到这个 SYN-ACK 是不会回复 TCP_ACK 的。

    我个人还是比较认同楼上有人提出使用代理的方案。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     989 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 17:55 PVG 01:55 LAX 09:55 JFK 12:55
    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