保证

保证

最近我写了一个简单的程序,它通过 TCP 协议模拟了我电脑上的服务器和客户端之间的通信。正如标题所说,我需要知道如何以最简单的方式获取我的电脑(Windows 7)的 IPv4 地址,以便查看我的程序是否有效。谢谢你的回答。

答案1

保证

如果您有有效的 IPv4 通信,则您至少拥有以下 IP 地址:

  • “127.0.0.1”

这可能不是你想要的,但这可能是最簡單为您解答,就这样。

更多的

如何确定您拥有的 IPv4 地址取决于您使用的语言。如果您使用 IP 进行通信,则可能会使用代码来了解您的 IP 地址。如果您使用 Batch,则可以使用以下方法将 IP 地址输出到文本文件:

WMIC /OUTPUT:"file.txt" NICCONFIG Get Caption,DefaultIPGateway,Description,IPAddress,IPSubnet,MACAddress /format:list

(如果使用 PowerShell,同样的方法也有效,但您需要在每个引号和逗号前放置一个“反引号”/“反勾号”。)

(该示例包含一些可选内容:您可以随意删除/OUTPUT/format部分、通常多余的“描述”部分等。如果您删除“获取”之后的所有内容(除了可选的“ ” /format:list),您实际上会得到更多的信息。)

如果您想要针对另一种编程语言的特定答案,您应该在其他地方将其作为单独的问题提出(我建议在 StackOverflow 网站上提出)。

使用 IPv4 时,您通常会使用(一个或多个)私有地址(以“192.168.”或“172.16.”开头,到“172.31.”或“10.”)。

民众

有些人想知道他们的公开 IP 地址是什么。 了解这一点的方法是询问互联网。例如,使用 HTTP 与http://whatismyip.com或其他类似的网站,并执行必要的步骤来提取所需的内容。

附注:IPv6

您没有问到 IPv6,但 IPv6 是值得回避的,所以这里是与 IPv6 相关的数据。

  • 您将拥有 ::1 作为环回地址
  • 虽然您通常不希望在 IPv4 中使用“链路本地”地址(以“169.254.”开头),但在 IPv6 中您肯定需要。此类“链路本地”地址本质上更具限制性,您不希望在 IPv4 中使用的唯一原因是某些 IPv4 软件倾向于假设您只有一个 IPv4 地址(环回地址除外)。由于 IPv6 使用链路本地作为标准,因此支持 IPv6 的软件不会因为使用了链路本地地址而崩溃。
  • IPv6 的私有地址以“fd”开头。
  • IPv4 和 IPv6 都使用称为“子网掩码”的概念,尽管 IPv6 几乎总是使用 CIDR 样式的表示法并将此信息称为“前缀长度”。这两个术语最终成为描述同一概念的两种方式:子网有多大。在任何现代网络上,“表示法”的差异只是数据写入方式的问题。(您可以在 IPv4“子网掩码”表示法和“CIDR 样式”表示法之间来回转换。)虽然您也可以将 CIDR 样式的表示法与 IPv4 一起使用(并且这样做通常更好),但许多 IPv4 软件仍然只显示“子网掩码”表示法。

这些是您需要了解的唯一真正的 IPv6 特定注意事项(除了 IPv6 地址是什么样子之类的详细信息之外),以确保您的程序能够很好地与 IPv6 配合使用。

相关内容