相关疑难解决方法(0)

如何在C#中获取用户的公共IP地址

我想要使​​用我的网站的客户的公共IP地址.下面的代码显示了LAN中的本地IP,但我想要客户端的公共IP.

//get mac address
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
String sMacAddress = string.Empty;
foreach (NetworkInterface adapter in nics)
{
    if (sMacAddress == String.Empty)// only return MAC Address from first card  
    {
        IPInterfaceProperties properties = adapter.GetIPProperties();
        sMacAddress = adapter.GetPhysicalAddress().ToString();
    }
}
// To Get IP Address


string IPHost = Dns.GetHostName();
string IP = Dns.GetHostByName(IPHost).AddressList[0].ToString();
Run Code Online (Sandbox Code Playgroud)

输出:

IP地址:192.168.1.7

请帮我获取公共IP地址.

c# asp.net asp.net-mvc asp.net-mvc-4

54
推荐指数
6
解决办法
16万
查看次数

如何获取服务器IP地址?

是否有一行方法来获取服务器的IP地址?

谢谢

c# asp.net

28
推荐指数
2
解决办法
5万
查看次数

如何以编程方式获取计算机的本地网络IP地址?(C#)

我需要使用C#和.NET 3.5从我的程序中获取计算机的实际本地网络IP地址(例如192.168.0.220).在这种情况下,我不能只使用127.0.0.1.

最好的方法是什么?

.net c# ip-address .net-3.5

26
推荐指数
4
解决办法
6万
查看次数

如何获取本地计算机的计算机名称和IP地址

如何以编程方式获取PC的计算机名称和IP地址?例如,我想在文本框中显示该信息.

c#

11
推荐指数
1
解决办法
3万
查看次数

Azure 应用服务内部 DNS 解析

我有一个 Azure Web 应用程序,它通过 VPN/VNET 集成与 3rd 方系统进行通信。该通信的一部分依赖于解析 DNS 名称的能力。

当应用程序部署到虚拟机时,我们只需使用如下条目更新主机文件

123.45.67.89 RPGMDR500-0R

并且通讯正常。由于通信的设置方式,我不能只在代码中使用 IP 地址。在通信中,DNS 名称被发回给我们,我们必须将其解析为该 IP 地址。

有没有办法只用一个应用服务来做到这一点?实际上,我们希望应用程序将此自定义 dns 名称解析为 ip 地址。

更新 我更新了我们的 VNET DNS 服务器以使用虚拟机设置进行 DNS。

使用 DNS 的 VNET

使用 nameresolver,我可以看到 DNS 正在访问应用程序服务,但前提是我指定了 DNS IP 地址。默认情况下,它仍在使用默认服务器(不确定如何)。(对于停电很抱歉,不确定这些数据有多敏感)。

名称解析器

dns azure azure-web-app-service

10
推荐指数
2
解决办法
9019
查看次数

什么是Request.UserHostName实际返回,是否可以将其转换为我可以获取主机条目的东西?

我想我可能会遇到这样的情况this is not possible但是如果不是这样的话......

我编写了一个ASP .NET MVC 3应用程序,我正在使用Request.UserHostName属性,然后将返回的值传递给Dns.GetHostEntry,以找出当前连接的客户端的所有可能的IP和主机名,例如:

var clientAddress = Request.UserHostName;
var entry = Dns.GetHostEntry(clientAddress);
Run Code Online (Sandbox Code Playgroud)

通常这很好,除了我有一个案例,我从Dns.GetHostEntry调用得到"主机未找到" SocketException.

真正奇怪的是,从Request.UserHostName属性返回的地址不是公共地址或任何私有地址.为了证明这一点,我在有问题的客户端机器上运行了这段代码......

var host = Dns.GetHostEntry(Dns.GetHostName());

foreach (var a in host.Aliases)
{
    Console.WriteLine("alias '{0}'", a);
}

foreach (var a in host.AddressList)
{
    Console.WriteLine("ip address '{0}'", a);
}

// ...from http://stackoverflow.com/a/2353177/1039947...
String direction = "";
WebRequest request = WebRequest.Create("http://checkip.dyndns.org/");
using (WebResponse response = request.GetResponse())
{
    using (var stream = new StreamReader(response.GetResponseStream())) …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc

8
推荐指数
2
解决办法
9299
查看次数

我的路由器知道我的外部 IP 地址。我可以通过编程方式访问该 IP 地址吗?

我一直在浏览很多与我的问题类似的问题:人们想 100% 确定地知道他们的外部 IP 地址(当我请求互联网连接时,我的 ISP 分配给我的地址)。好吧,这些问题最具体的答案是:除非您询问某些网络服务,否则您无法知道自己的互联网 IP 地址。

我的路由器怎么知道这一点?我希望它从 ISP 本身获得它,并将其“写下来”。

所以,我的问题是:所有路由器之间是否有一种通用的、标准化的方式来要求他们向我提供该信息(即由我的 ISP 签名的我的 IP 地址)?即使它涉及 COM 互操作性或调用非托管代码的东西,我也不介意。

详细说明:我想要一种方法来检索 ISP 分配给我的 IP 地址,该地址 100% 准确,这意味着我只想要那个地址;不是其他接口或其他任何内容的地址列表。我真的很难相信这是不可能实现的。

编辑:很抱歉,其他问题与我问的问题无关。我问路由器是否有某种标准 API 来查询它的公共 IP。我不明白这些答案如何回答我的问题。


已解决:有这样的标准。这是一个称为 WANIPConnection 的 UPnP 标准。它有一个名为 GetExternalIPAddress 的“操作”。不过,在 C# 程序中使用它似乎真的很困难。但我正在编辑我的问题,以便将来阅读它的任何人都会知道答案是肯定的。这是 UPnP 论坛http://www.upnp.org/的链接,以防有人想进一步了解这一点。还有这个开源项目http://opentools.homeip.net/dev-tools-for-upnp。最后一个项目有很多小软件(工具),并且所有源代码(用 C 或 C++ 编写)都可用。我不知道如何解决我的问题,因为我不是那么聪明,但同样,如果有人想进一步研究这个问题,DevToolsForUPnP 项目是另一件值得检查的事情。

c# ip-address

6
推荐指数
0
解决办法
1266
查看次数

如何从C#中的FTP请求获取IP地址

我有一个传入的FTP请求.我想获取传入FTP请求中提到的F​​TP服务器的IP地址.我必须针对列入白名单的FTP服务器进行验证.

任何帮助将不胜感激..

我的代码如下:

try
{
    IPHostEntry host;
    string localIP = "?";
    host = Dns.GetHostEntry(uri);
    foreach (IPAddress ip in host.AddressList)
    {
        // we are only interested in IPV4 Addresses
        if (ip.AddressFamily == AddressFamily.InterNetwork) 
        {
            localIP = ip.ToString();
        }
    }

    return localIP;
}
catch (Exception exception)
{
    throw;
}
Run Code Online (Sandbox Code Playgroud)

.net c# ftp ip-address httpwebrequest

4
推荐指数
1
解决办法
1364
查看次数

使用手机作为接入点的设备的IP地址

任何人都可以解释或展示如何获得通过手机的便携式WI-FI热点连接的计算机(或其他设备)的IP地址?

我从这里尝试了以下代码

public String getLocalIpAddress() {
    try {
        for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
            NetworkInterface intf = en.nextElement();
            for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
                InetAddress inetAddress = enumIpAddr.nextElement();
                if (!inetAddress.isLoopbackAddress()) {
                    return inetAddress.getHostAddress().toString();
                }
            }
        }
    } catch (SocketException ex) {
        Log.e(LOG_TAG, ex.toString());
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

但这只返回默认网关.

我还在SO上找到了另一个例子,它可能只是解决方案,但我不知道如何将它应用到我的情况中.具体来说,我无法看到该代码中IP地址的位置.

ip networking android wifi

4
推荐指数
1
解决办法
1万
查看次数

获取公共Internet IP地址/地理位置的智能方式

我在NAT路由器后面的本地网络上有一台计算机.我有一些192.168.0.x地址,但我真的想知道我的公共 IP地址,而不是提到的

如何获取运行我的C#应用​​程序的服务器的IP地址?

要么

如何在C#中获取机器的IP地址

我需要C#代码.

可能吗?如果是这样,怎么样?

.net c# ip-address geolocation

3
推荐指数
3
解决办法
1万
查看次数