Существует ли в C# оператор обратный null?

Ssmodey

Client
Регистрация
10.12.2016
Сообщения
129
Благодарностей
27
Баллы
28
Все добрый день!
Есть код, честно взятый из открытого шаблона конкурса статей. Он подключается к whois.ripn.net по 43 порту, парсит NS запись и выбирает из них, у которых их нету.
Код:
var pinger = project.Lists["pinger"];
var good = project.Lists["good"];
string ns = project.Variables["ns"].Value;
project.SendInfoToLog("Чекаем днс. Кол-во: " + pinger.Count + " шт.", true);
System.Threading.Tasks.Parallel.For(0, pinger.Count, i => {
            string domain = pinger[0];
            pinger.RemoveAt(0);
            try
            {
                IPHostEntry host = Dns.GetHostEntry(domain);
                foreach (IPAddress ip in host.AddressList)
                {
                    //project.SendInfoToLog(ip.ToString(), false);
                }
            }
            catch
            {
                string whoisServer = "whois.ripn.net";
                try{
                        StringBuilder result = new StringBuilder();
                        result.AppendLine("По данным " + whoisServer + ": ------------------------------------------");
                        using (TcpClient tcpClient = new TcpClient()){
                            //открываем соединение с сервером WHOIS
                            tcpClient.Connect(whoisServer.Trim(), 43);
                            byte[] domainQueryBytes = Encoding.ASCII.GetBytes(domain + "\r\n");
                            using (Stream stream = tcpClient.GetStream()){
                                //отправляем запрос на сервер WHOIS
                                stream.Write(domainQueryBytes, 0, domainQueryBytes.Length);
                                //читаем ответ в формате UTF8, так как некоторые национальные домены содержат информацию на местном языке
                                using (StreamReader sr = new StreamReader(tcpClient.GetStream(), Encoding.UTF8)){
                                    string row;
                                    while ((row = sr.ReadLine()) != null)
                                        result.AppendLine(row);
                                }
                            }
                        }
                        result.AppendLine("---------------------------------------------------------------------\r\n");
                        foreach (Match m in Regex.Matches(result.ToString(), @"(?<=nserver:\ \ \ \ \ \ \ ).*(?=\.)"))
                        {
                            if(m.Value == ns)
                            {
                                good.Add(ns + " | " + domain.ToLower());
                                project.SendInfoToLog("Нашли домен без днс " + domain.ToLower(), true);
                            }
                        }
                    }catch{}
            }
            });
Я в C# вообще не силён, но на сколько я понимаю, проверка на пустоту NS записи происходит вот в этой части кода:
Код:
{
                                    string row;
                                    while ((row = sr.ReadLine()) != null)
                                        result.AppendLine(row);
                                }
Тут переменная сравнивается с оператором null. Есть ли в C# оператор обратный null? Т.е. мне нужно наоборот, чтобы код возвращал не пустые результаты, а в которых есть NS записи.
 

Dr.Pipetka

Client
Регистрация
12.12.2017
Сообщения
1 234
Благодарностей
804
Баллы
113
==null -Пусто
!=null -Не пусто
 
  • Спасибо
Реакции: Ssmodey

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 955
Благодарностей
781
Баллы
113
Вам надо вот этот кусок менять :
C#:
foreach (Match m in Regex.Matches(result.ToString(), @"(?<=nserver:\ \ \ \ \ \ \ ).*(?=\.)"))
                        {
                            if(m.Value == ns)
                            {
                                good.Add(ns + " | " + domain.ToLower());
                                project.SendInfoToLog("Нашли домен без днс " + domain.ToLower(), true);
                            }
                        }
тут регуляркой что-то ищется и если оно равно ns - значит домен без днс. не знаю какая там логика поиска чего и для чего, но можно добавить else и в него прописать добавление того, когда не равно ns - туда куда надо
 
  • Спасибо
Реакции: Ssmodey

Ssmodey

Client
Регистрация
10.12.2016
Сообщения
129
Благодарностей
27
Баллы
28
==null -Пусто
!=null -Не пусто
Благодарю!
Но, я ошибся в части кода, где идёт проверка. Вот в этой части:
Код:
                            if(m.Value == ns)
                            {
                                good.Add(ns + " | " + domain.ToLower());
                                project.SendInfoToLog("Нашли домен без днс " + domain.ToLower(), true);
                            }
Правильно ли я понимаю, что если я заменю (m.Value == ns) на (m.Value != ns), то эффект будет обратный?
 

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 955
Благодарностей
781
Баллы
113
Благодарю!
Но, я ошибся в части кода, где идёт проверка. Вот в этой части:
Код:
                            if(m.Value == ns)
                            {
                                good.Add(ns + " | " + domain.ToLower());
                                project.SendInfoToLog("Нашли домен без днс " + domain.ToLower(), true);
                            }
Правильно ли я понимаю, что если я заменю (m.Value == ns) на (m.Value != ns), то эффект будет обратный?
да, правильно
 
  • Спасибо
Реакции: Ssmodey

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Благодарю!
Но, я ошибся в части кода, где идёт проверка. Вот в этой части:
Код:
                            if(m.Value == ns)
                            {
                                good.Add(ns + " | " + domain.ToLower());
                                project.SendInfoToLog("Нашли домен без днс " + domain.ToLower(), true);
                            }
Правильно ли я понимаю, что если я заменю (m.Value == ns) на (m.Value != ns), то эффект будет обратный?
Можно ссылку на шаблон?
 

Ssmodey

Client
Регистрация
10.12.2016
Сообщения
129
Благодарностей
27
Баллы
28

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)