C#套接字 - 禁止IP地址

时间:2012-11-14 17:04:05

标签: c# sockets ip

我对C#中的套接字有疑问。我有一个服务器,我想阻止连接到禁止IP的客户端。两者都是用.NET 4.0制作的。

服务器通过Internet(No-ip主机名)运行,而不仅仅是在本地网络中运行。问题是客户的IP每天都在变化,所以我不知道如何永久地禁止这些客户。我知道我可以通过简单地将客户的IP与任何被禁止的地址进行比较来禁止它们。

if ( banned_ip == clients_ip )
{
     client.Disconnect();
}

但是如何获取客户端的IP我可以永久禁止?

如果您需要更多信息,我会发布它们。

3 个答案:

答案 0 :(得分:2)

永久禁止IP地址是一个坏主意,因为许多ISP使用 dynamic addressing 。没有很多附带损害,没有简单的方法可以达到你的要求。

我能想到的唯一方法就是实现一种简单的身份验证机制。

答案 1 :(得分:0)

我同意Marc你应该禁止在防火墙级别。

如果您想获取客户端的IP,请使用套接字的RemoteEndPoint Property,然后您可以将Endpoint (parent class)转换为IPEndPoint并使用Address propertyToString以获得IPv4或IPv6格式。

答案 2 :(得分:0)

显然,在获得客户的MAC地址之前是没有办法的(但最好的方法是通过硬件防火墙处理它)。

如果您需要查找MAC地址,请参阅此信息: Reliable method to get machine's MAC address in C#

相关问题