【问题标题】:How can i get IP Address of my 3G modem?如何获取 3G 调制解调器的 IP 地址?
【发布时间】:2010-02-16 11:30:03
【问题描述】:

我的 GPRS 调制解调器有一张 SIM 卡。它可以连接Web。 Web 服务给它一个 ip 号码。我需要它。像这样:http://www.your-ip-address.com/

C# 怎么做?

【问题讨论】:

  • 也许你不应该在得到答案后重新表述你的整个问题......这非常令人困惑。
  • 同意;我已经回滚了这个问题,以便答案有意义。

标签: c# visual-studio visual-studio-2008 network-programming


【解决方案1】:

您可以使用静态方法WebClient.DownloadString(url) 从任何提供此类数据的 Web 服务中读取您的外部 IP 地址:

string ip = System.Net.WebClient.DownloadString("http://whatismyip.org/");

如果您打算在生产环境中使用它,最好确保您所指向的 URL 在您的应用程序的整个生命周期内都存在。最好的方法可能是自己托管 Web 服务。

此外,您应该围绕此代码添加一些错误检查,因为如果互联网连接或网络服务不可用,它将失败。

【讨论】:

    【解决方案2】:

    您可以使用以下代码通过 DNS 获取您的 IP 地址列表:

    var name = Dns.GetHostName();
    var entry = Dns.GetHostEntry(name);
    foreach (var address in entry.AddressList) {
       Console.WriteLine(address);
    }
    

    如果您希望 IP 地址作为硬件的属性,您可以使用名称为 Win32_NetworkAdapterConfigurationSystem.Management.ManagementClass。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/system.management.managementclass.aspx

    【讨论】:

    • 此代码将仅返回 本地 IP 地址,还是我弄错了?在许多情况下,这与your-ip-address.com 报告的 remote 地址不同
    • 这取决于。当我使用拨号时,它使用 PPP 并且我的连接被分配了一个公共 IP 地址。所以上面的代码返回与 your-ip-address.com 相同的 IP 地址。
    【解决方案3】:

    您可以向 http://whatismyip.com/automation/n09230945.asp 创建一个 WebRequest,其中仅包含您的 IP 地址

    开始here

    【讨论】:

    • @ykaratoprak:所以继续吧。是什么阻止您“使用 C# 实现”?
    • 我需要静态 ip:your-ip-address.com 这个网站给我我想要的 ip。我需要怎么做那个 C# 代码
    • whatismyip.com/automation/n09230945.asp 为您提供与 your-ip-address.com 相同的 IP,我引用的页面解释了如何根据您的要求创建具有超时等的 Web 请求
    猜你喜欢
    • 1970-01-01
    • 2020-11-28
    • 1970-01-01
    • 2010-11-04
    • 2013-06-23
    • 2023-04-06
    • 2010-11-15
    • 1970-01-01
    • 2011-04-19
    相关资源
    最近更新 更多