Си диез / Говнокод #10236 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 KusokGovna, (Updated )

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

    • Как вариант, или просто 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 в этой функции нигде не используются.
        Ответить
          • Она объявлена в начале класса:

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

            И используется.
            Ответить

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

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8