如何知道NAT背后的公共IP和端口

时间:2014-10-17 08:55:51

标签: python nat

我有一个NAT后面的客户端和一台可以通过这台计算机访问的服务器

类似的东西:

  local ip    external ip IPe
              external port Pe
C --------- | ----------------- S
           NAT

我希望S知道C IPe和Pe用于在这两者之间传输

我该怎么做?

我正在使用python

1 个答案:

答案 0 :(得分:0)

如果S是服务器,那么只需

 conn, addr = s.accept()

否则,如果C对S 一无所知 这是一个解决方案问题:您应该使用一个中间服务器来解决您的通信问题。

  1. C连接到服务器并发送他的外部端口号( 服务器自动知道IPe。
  2. 服务器存储IPe和Pe。
  3. 向服务器询问C并获取IPe和Pe。
  4. 然后S可以通过自己的
  5. 联系C.

    要求:

    • TCP连接
    • S和C是客户
    • 中间服务器

    注意:秘诀是C和S都知道服务器。