相关疑难解决方法(0)

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

我正在运行服务器,我想显示自己的IP地址.

获取计算机自身(如果可能的话,外部)IP地址的语法是什么?

有人写了下面的代码.

IPHostEntry host;
string localIP = "?";
host = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress ip in host.AddressList)
{
    if (ip.AddressFamily.ToString() == "InterNetwork")
    {
        localIP = ip.ToString();
    }
}
return localIP;
Run Code Online (Sandbox Code Playgroud)

但是,我一般不信任作者,我不明白这段代码.有没有更好的方法呢?

c# ip-address

363
推荐指数
9
解决办法
36万
查看次数

在C#中通过远程处理获取外部IP地址

我需要找出运行C#应用程序的计算机的外部 IP.

在应用程序中,我有一个连接(通过.NET远程处理)到服务器.有没有一种很好的方法来获取服务器端的客户端地址?

(我已经编辑了这个问题,要更清楚一些.我向所有那些尽力回答这个问题的人道歉,当时我可能有点太模糊了)

解决方案:
我发现了一种对我有用的方法.通过实现我可以访问CommonTransportKeys.IPAddress的自定义IServerChannelSinkProvider和IServerChannelSink,可以很容易地在CallContext上添加客户端ip.

public ServerProcessing ProcessMessage(IServerChannelSinkStack sinkStack, 
    IMessage requestmessage, ITransportHeaders requestHeaders, 
    System.IO.Stream requestStream, out IMessage responseMessage, 
    out ITransportHeaders responseHeaders, out System.IO.Stream responseStream)
{
    try
    {
        // Get the IP address and add it to the call context.
        IPAddress ipAddr = (IPAddress)requestHeaders[CommonTransportKeys.IPAddress];
        CallContext.SetData("ClientIP", ipAddr);
    }
    catch (Exception)
    {
    }

    sinkStack.Push(this, null);
    ServerProcessing srvProc = _NextSink.ProcessMessage(sinkStack, requestmessage, requestHeaders,
        requestStream, out responseMessage, out responseHeaders, out responseStream);

    return srvProc;
}
Run Code Online (Sandbox Code Playgroud)

然后(当我从客户端收到请求时)只需从CallContext获取IP就像这样.

public string GetClientIP()
{
    // Get the client IP …
Run Code Online (Sandbox Code Playgroud)

.net c# remoting

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

如何在c#中使用win app检测静态ip

如果我错了,请纠正我.有两种类型的IP - 一种是我们分配给LAN卡的静态(固定)IP地址,另一种是我们从服务提供商处收到的IP地址.

对于前者 为我的机器设置的IP地址是192.168.1.10,而ISP给出的IP地址是218.64.xx.xx. (您可以使用http://www.ip2location.com/查看此内容)

当我使用ASP.net时,我可以使用-HttpContext.Current.Request.UserHostAddress获取ISP提供的IP地址;

问题:现在,我在Windows Forms环境中工作,但无法获得ISP提供的IP,但我能够获得固定的IP.

有谁能够帮我?

谢谢你分享你的时间.

c# ip-address winforms

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

标签 统计

c# ×3

ip-address ×2

.net ×1

remoting ×1

winforms ×1