2016-08-04 38 views
2

Ich habe eine C# -Konsolenanwendung und möchte eine E-Mail an eine bestimmte Adresse senden können, wenn IP-Adressen gefunden werden, die nicht lokal sind In dem Array gehe ich davon aus, dass ich eine If! = Anweisung verwenden würde, aber ich kann nichts zum Arbeiten bekommen. Irgendwelche Tipps oder Hilfe würden sehr geschätzt werden.E-Mail-Benachrichtigung senden Wenn ein bestimmter Wert (IP-Adresse) im Array gefunden wird

System.Net.IPAddress[] addresslist = Dns.GetHostAddresses(C); 
    { 
    string IPs = ""; 
    bool firstIP = true; 
    foreach (IPAddress ip in addresslist) 
     { 
      if (!firstIP) 
       { 
        IPs = IPs + ","; 

       } 
        IPs = IPs + ip; 
        firstIP = false; 
        } 
        addresslist.ToString(); 
     if addresslist != { "10.1.20.99"} //example, have multiple IP's 
     then //..... this is where I am stuck 
+0

senden, können Sie 'String.Join' verwenden, um die gesamte Schleife zu ersetzen:' IPs = String.Join (",", addresslist.Select (ip => ip.ToString())) ' –

Antwort

1

Sie können mit den lokalen Adressen entfernen

var filteredIPs = ipaddresslist.Where(p => !p.StartsWith("10.1")); 

Dann können Sie Btw eine Nachricht mit so etwas wie sendimportantmails(String.Join(",", filteredIPs));

+0

Die Starts mit Teil scheint nicht auf meiner App zu arbeiten, auch möchte ich diese lokalen Adressen nicht entfernen Das Array, ich möchte nur eine E-Mail gesendet werden, wenn alle nicht-lokalen IP-Adressen gefunden werden. –

+0

Es wird nicht aus dem Array entfernt, es macht eine Liste ohne lokale IPs drin. StartsWith sollte funktionieren - auf welche Art und Weise funktioniert es nicht? – BugFinder

+0

okay cool, und es sagt "IPaddress enthält keine Definition für 'StartsWith' und keine Erweiterungsmethode 'StartsWIth' akzeptiert ein erstes Argument vom Typ 'IP-Adresse' könnte gefunden werden (fehlt Ihnen eine Using-Direktive oder Assembly-Referenz?) –