1. C# / Говнокод #10236

    +92

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    private IPAddress GetAGateway(string Network)
    {
    	if(Network.StartsWith("PitNet"))
    	{
    		string IPs = Network.Split(new char[] {'|'})[1];
    		string[] IPPoints = IPs.Split(new char[] {'.'});
    		string[] PitNetIP = {"10.10.40", "10.10.50", "10.10.67",
    				     "10.10.100", "10.10.108", "10.10.109", 
    				     "10.10.110", "10.10.150", "10.10.160", 
    				     "10.10.200", "10.10.210", "10.10.220", "10.10.250"};
    		string IPAddresss = null;
    		if(IP.ToString().StartsWith(PitNetIP[0])) IPAddresss = "10.10.40.1";
    		if(IP.ToString().StartsWith(PitNetIP[1])) IPAddresss = "10.10.50.1";
    		if(IP.ToString().StartsWith(PitNetIP[2])) IPAddresss = "10.10.67.1";
    		if(IP.ToString().StartsWith(PitNetIP[4])) IPAddresss = "10.10.100.4";
    		if(IP.ToString().StartsWith(PitNetIP[5])) IPAddresss = "10.10.108.1";
    		if(IP.ToString().StartsWith(PitNetIP[6])) IPAddresss = "10.10.109.1";
    		if(IP.ToString().StartsWith(PitNetIP[7])) IPAddresss = "10.10.110.4";
    		if(IP.ToString().StartsWith(PitNetIP[8])) IPAddresss = "10.10.150.1";
    		if(IP.ToString().StartsWith(PitNetIP[9])) IPAddresss = "10.10.160.1";
    		if(IP.ToString().StartsWith(PitNetIP[10])) IPAddresss = "10.10.200.3";
    		if(IP.ToString().StartsWith(PitNetIP[11])) IPAddresss = "10.10.210.1";
    		if(IP.ToString().StartsWith(PitNetIP[12])) IPAddresss = "10.10.220.1";
    		if(IP.ToString().StartsWith(PitNetIP[13])) IPAddresss = "10.10.250.1";
    		IPAddress GatewayIP = IPAddress.Parse(IPAddresss);
    		return GatewayIP;
    	}
    	if(Network.StartsWith("StarNet"))
    	{
    		//говно говно говно
    	}
    	if(Network.StartsWith("Maglan"))
    	{
    		//говно говно говно
    	}
    	return null;
    }

    По полученному оператору локальной сети и IP адрессу машины определяет какой у нее шлюз. Жаль LINQ нету.

    Запостил: KusokGovna, 10 Мая 2012

    Комментарии (12) RSS

    • вы предпочли бы XML-файл для хранения данных?
      Ответить
      • Как вариант, или просто plain-text:
        10.10.40.0/24 10.10.40.1
        10.10.100/24 10.10.100.4
        ...
        Ответить
      • Список шлюзов на машине можно узнать так:

        GatewayIPAddressInformationCollection gateway = properties.GatewayAddresses;
        foreach (GatewayIPAddressInformation gate in gateway)
        {
            Console.WriteLine(gate.Address.ToString());
        }
        Ответить
        • А может он наоборот хочет прописать правильный шлюз, поглядев на айпишку? По куску кода не видно его назначения.
          Ответить
    • Еще и третий элемент массива PitNetIP потерял. Какие-же внимательные, эти индусы.
      Ответить
      • > третий
        четвёртый
        Ответить
        • Если воспринимать 0 как точку отчета, то да, четвертый.

          И еще не понятно зачем тут строки

          string IPs = Network.Split(new char[] {'|'})[1];
          string[] IPPoints = IPs.Split(new char[] {'.'});

          Смысла не вижу. IPs и IPPoints в этой функции нигде не используются.
          Ответить
          • переменная IP так же нигде не объявлена
            Ответить
            • Она объявлена в начале класса:

              IPAddress IP = Dns.GetHostByName(Dns.GetHostName()).Add ressList[0];

              И используется.
              Ответить
    • Что было бы если бы он пару подсетей перебирал...
      Ответить

    Добавить комментарий