为什么不能伪造IP地址?

时间:2011-03-03 12:12:33

标签: tcp ip

我知道可以使用代理更改IP地址,但我很感兴趣为什么不能通过从单台计算机发送更改的数据来更改它?

更新

感谢您快速回复,但是如果使用无状态协议(如HTTP),则不清楚会发生什么。我不熟悉低层网络通信,但从理论上讲,如果PC连接到服务器并立即收到回复,理论上应该可以获取IP地址。

4 个答案:

答案 0 :(得分:58)

完全可以使用虚假的发件人IP发送数据。你会很难得到回复,因为回复将被发送到虚假的IP,永远不会到达你。此外,如果您使用路由器不希望从您那里获得的“来自”IP发送数据,路由器通常会丢弃它,有时会通知ISP您违反了您的服务条款。< / p>

编辑:回应编辑后的帖子。

在面向连接的协议(TCP)之上构建的任何协议(例如HTTP)都需要有效的IP。伪造IP普遍存在的情况主要涉及拒绝服务攻击,在TCP握手中使用UDP,ICMP或初始SYN数据包。

答案 1 :(得分:13)

您可以使用您想要发送的任何IP地址,但回复将转到您使用的IP地址,因此您无法以这种方式建立双向通信。

答案 2 :(得分:4)

(*这是一个老问题,答案还可以,只有一个补充)
它被称为IP欺骗,防火墙正在努力检测和阻止它,网络桥可能会被它混淆(一段时间)
http://en.wikipedia.org/wiki/IP_address_spoofing

答案 3 :(得分:3)

如果您尝试通过更改源IP地址发送数据包,您可以将其发送给其他人,但如果您想要一个数据包返回到您的电脑,您必须使用像NAT这样的东西

如果您在网络上的路由器后面,您实际上正在改变隐藏自己的身份

实施例: 你:192.168.1.4 内部路由器:192.168.1.1 external-ip:8.8.8.8 destination-ip:8.8.4.4

发送数据包: 从:192.168.1.4(你)到8.8.4.4(dest) router transelate to: 从:8.8.8.8(external-ip)到8.8.4.4(dest) 并将你的ip保存在他的记忆中

比包裹到达目的地。

现在目的地发回一个数据包 从:8.8.4.4(dest)到8.8.8.8(external-ip) router transelate to(whith using its memory) 从:8.8.4.4(dest)到192.168.1.4(你)

现在数据包返回到您的电脑

你可以看到目的地不知道你的IP但只知道路由器的IP

这是一种可以让你隐藏你的ip

的方法