首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用环路、C#进行IP保护

使用环路、C#进行IP保护
EN

Stack Overflow用户
提问于 2017-06-17 04:18:25
回答 3查看 68关注 0票数 0

所以今天我在为我正在制作的程序做一些知识产权保护的工作。

is白名单托管在pastebin上。

我的程序下载IP,将其拆分成一个字符串数组。

我的程序还使用https://wtfismyip.com/text检查ip

我想要做的是比较数组中的每个字符串,并检查它是否是当前的IP。

如果该IP结束时不是当前IP,则关闭该IP。

我该怎么做呢?

代码示例:

代码语言:javascript
复制
    for (int i = 0; i < iplist.Length; i++)
    {
        if(iplist[i] == WebIP)
        {
            MessageBox.Show("Passed");
        }
        else
        {
            this.Close();
        }
    }
EN

回答 3

Stack Overflow用户

发布于 2017-06-17 04:20:31

您可以使用一些LINQ来使代码更具可读性:

代码语言:javascript
复制
if (iplist.Any(ip => ip == WebIP))
{
    MessageBox.Show("Passed");
}
else
{
    this.Close();
}
票数 1
EN

Stack Overflow用户

发布于 2017-06-17 04:26:33

假设您要测试很多次,创建白名单(或类似的:黑名单)的HashSet<T>;假设它是一个string

代码语言:javascript
复制
var whiteList = new HashSet<string>(iplist);

(只做一次,而不是每次都需要检查)

然后只需检查.Contains

代码语言:javascript
复制
bool isOK = whiteList.Contains(WebIP);

工作完成了,而且非常高效

票数 1
EN

Stack Overflow用户

发布于 2017-06-17 04:24:01

您可以使用一个标志并相应地设置它,如下所示

代码语言:javascript
复制
 bool flag = false;
    for (int i = 0; i < iplist.Length; i++)
    {
    if(iplist[i] == WebIP)
     {
       flag = true;
       break;
     }
   }

if(flag)
  MessageBox.Show("Passed");
else
  this.Close();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44597351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档