2013-12-07 53 views
0

所以我的目标是从一个网站下载一个IP地址列表,如果它发现它,将会调用一些东西。我的问题是分离每个IP。这是我尝试的当前代码。解析WebClient数据

public void BlackList() 
    { 
     try 
     { 
      WebClient check = new WebClient(); 
      check.Encoding = System.Text.Encoding.UTF8; 
      string IPS = check.DownloadString("http://SITE.info/blacklist.txt"); 
      foreach (string s in Regex.Split(IPS)) 
      { 

      } 
     catch (Exception ex) 
     { 

     } 
    } 

这之后我打算把它们放入一个列表,怎么做,如果(list.contains IPS ...等,但是这是行不通的。名单看起来是这样的

1.1.1.1 
2.2.2.2 
3.3.3.3 

回答

0

你不需要正则表达式。只需使用String.Split

var blacklist = IPS.Split() 
       .Where(ip => !String.IsNullOrWhiteSpace(ip)) 
       .Select(ip => IPAddress.Parse(ip)) 
       .ToList(); 
0

既然你分割在单独一行,你需要处理的换行符都\r\n\n风格(而不是强制t Environment.NewLine)。

string[] ipList = IPS.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None); 
foreach (string s in ipList) 
{ 
    //do stuff with s 
}