推荐学习书目
› 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 · Jul 29, 2016 · 18895 views
    This topic created in 3751 days ago, the information mentioned may be changed or developed.
    32 replies  •  2018-02-21 19:33:15 +08:00
    holyghost
    holyghost
    Jul 29, 2016
    1
    我们不提倡做坏事
    paw
    paw
    Jul 29, 2016
    2
    伪造 IP 3 次握手都完不成..... 除非你能控制路由让你伪造的 IP 包转到你伪造源机器上去
    3dwelcome
    3dwelcome
    Jul 29, 2016 via Android
    3
    找个代理发请求、 ip 包你修改了、那路由就没办法发送数据了。
    naomhan
    naomhan
    Jul 29, 2016
    4
    requests.get(url, proxies={"http":"ip:port"})
    naomhan
    naomhan
    Jul 29, 2016
    5
    不对 这叫代理了
    ovear
    ovear
    Jul 29, 2016
    6
    X-REAL-IP
    tabris17
    tabris17
    Jul 29, 2016❤️1
    7
    概率上有可能实现
    hard2reg
    hard2reg
    Jul 29, 2016
    8
    我们不提倡做坏事
    ysc3839
    ysc3839
    Jul 29, 2016 via Android
    9
    伪造 IP 的话数据都发到伪造的 IP 上了, 3 次握手不能完成,更不可能发送 HTTP 请求
    felixzhu
    felixzhu
    Jul 29, 2016
    10
    不能伪造,一般都是找代理服务
    iyangyuan
    iyangyuan
    Jul 29, 2016 via iPhone
    11
    伪命题
    zythum
    zythum
    Jul 29, 2016
    13
    伪造 ip 你就接不到包了.... 没发建立链路的。
    loalj
    loalj
    Jul 29, 2016❤️1
    14
    有些 web 服务器校验客户端的真实 ip 是直接从 http headers 里边读,可以伪造 x-forward-for, x-real-ip 来欺骗 web 服务器,但是大部分都没办法通过这种办法来伪造。
    hxndg
    hxndg
    Jul 29, 2016
    15
    表示我原先也想过这个问题
    wweir
    wweir
    Jul 29, 2016 via iPhone
    16
    可以考虑 sip 不过这个跟 Python 没啥关系
    zaishanfeng
    zaishanfeng
    Jul 29, 2016 via Android
    17
    这怎么可能 要是可以伪造岂不是乱套了
    msg7086
    msg7086
    Jul 29, 2016
    18
    可以伪造,但是你怎么收包?
    cmaster
    cmaster
    Jul 29, 2016
    19
    人家说不定是想 DDoS 呢?
    aeshfawre
    aeshfawre
    Jul 29, 2016
    20
    据说不接收数据就可以,只发出去
    gefranks
    gefranks
    Jul 29, 2016
    21
    这种伪造的包很有可能被一些路由直接丢弃,因为包的源不认识,这些包也不会被路由
    redsonic
    redsonic
    Jul 30, 2016❤️1
    22
    撇开 TCP 三次握手,很早之前的 BGP 接入都可以伪源 ip 发包,后来 DDos 多了,运营商都按照 BCP38 来过滤源了。
    3dwelcome
    3dwelcome
    Jul 30, 2016 via Android
    23
    三次握手、在第二个阶段模拟服务器返回伪造 ip 包和地址是完全可行的。但我没试过第三次客户端伪造源地址后、能否建立连接。

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

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

    我个人还是比较认同楼上有人提出使用代理的方案。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1475 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 84ms · UTC 17:49 · PVG 01:49 · LAX 09:49 · JFK 12:49
    ♥ Do have faith in what you're doing.