Модератор форума: o_Lisovenko, JonMagon |
Сообщество uCoz » Вебмастеру » Инструменты и софт для вебмастера » uServNum (Программа для определения номера uCoz сервера) |
uServNum |
Название: uServNum Обновлено: 11.07.13 Описание: Программа для определения номера uCoz сервера, на котором расположен сайт. Сервер можно определить даже тогда, когда тот недоступен. Программа избавляет вас от нужды искать IP адрес в списке серверов, в результате выводится окончательный номер сервера. Принцип работы основан на сравнении IP адресов: IP адрес сервера парсится на блоки, если первый блок попадает под IP адрес сервера, то берется весь IP адрес и сравнивается со списком IP серверов, как только совпадает — выводится номер сервера, если нет — выводится ошибка. Ничего сложного нет, достаточно набрать адрес сайта и нажать Enter. Прикрепления:
uServNum.zip
(4.2 Kb)
·
3622875.png
(6.0 Kb)
|
Цитата (JonMagon) P.S. Декомпиляцией вы никогда не получите оригинал. И все таки я получил настолько подобный оригиналу код, который при сборке в байт код идентичен оригиналу. Так бы и сказал сразу сорцы не дам, было бы проще. Просто здесь http://fi4a.ru/php/userv.php написано "uServ был написан благодаря исходной утилиты uServNum", вот я и решил выложить сорцы. Сообщение отредактировал Дарк - Среда, 19 Июн 2013, 19:23:25
|
Цитата (JonMagon) каким образом case превратился в if Конец одного сравнения прыгает к началу другого, если сравнение истинно прыгает к IL_0fbd, таже логика, что и вложенные if'ы. Код IL_01cc: nop IL_01cd: ldloc.1 IL_01ce: ldstr "217.199.217.99" IL_01d3: call bool [mscorlib]System.String::op_Equality(string, string) IL_01d8: ldc.i4.0 IL_01d9: ceq IL_01db: stloc.s 4 IL_01dd: ldloc.s 4 IL_01df: brtrue.s IL_01ee IL_01e1: nop IL_01e2: ldstr "s0" IL_01e7: stloc.2 IL_01e8: nop IL_01e9: br IL_0fbd IL_01ee: ldloc.1 IL_01ef: ldstr "217.199.217.101" IL_01f4: call bool [mscorlib]System.String::op_Equality(string, string) IL_01f9: ldc.i4.0 IL_01fa: ceq IL_01fc: stloc.s 4 IL_01fe: ldloc.s 4 IL_0200: brtrue.s IL_020f IL_0202: nop IL_0203: ldstr "s1" IL_0208: stloc.2 IL_0209: nop IL_020a: br IL_0fbd IL_020f: ldloc.1 IL_0210: ldstr "195.216.243.2" IL_0215: call bool [mscorlib]System.String::op_Equality(string, string) IL_021a: ldc.i4.0 IL_021b: ceq IL_021d: stloc.s 4 IL_021f: ldloc.s 4 IL_0221: brtrue.s IL_0230 IL_0223: nop IL_0224: ldstr "s2" IL_0229: stloc.2 IL_022a: nop IL_022b: br IL_0fbd IL_0230: ldloc.1 IL_0231: ldstr "217.199.217.3" IL_0236: call bool [mscorlib]System.String::op_Equality(string, string) IL_023b: ldc.i4.0 IL_023c: ceq IL_023e: stloc.s 4 IL_0240: ldloc.s 4 IL_0242: brtrue.s IL_0251 IL_0244: nop IL_0245: ldstr "s3" IL_024a: stloc.2 IL_024b: nop IL_024c: br IL_0fbd IL_0251: ldloc.1 IL_0252: ldstr "217.199.217.4" IL_0257: call bool [mscorlib]System.String::op_Equality(string, string) IL_025c: ldc.i4.0 IL_025d: ceq IL_025f: stloc.s 4 IL_0261: ldloc.s 4 IL_0263: brtrue.s IL_0272 IL_0265: nop IL_0266: ldstr "s4" IL_026b: stloc.2 IL_026c: nop IL_026d: br IL_0fbd IL_0272: ldloc.1 IL_0273: ldstr "217.199.217.5" IL_0278: call bool [mscorlib]System.String::op_Equality(string, string) IL_027d: ldc.i4.0 IL_027e: ceq IL_0280: stloc.s 4 IL_0282: ldloc.s 4 IL_0284: brtrue.s IL_0293 IL_0286: nop IL_0287: ldstr "s5" IL_028c: stloc.2 IL_028d: nop IL_028e: br IL_0fbd IL_0293: ldloc.1 IL_0294: ldstr "217.199.217.6" IL_0299: call bool [mscorlib]System.String::op_Equality(string, string) IL_029e: ldc.i4.0 IL_029f: ceq IL_02a1: stloc.s 4 IL_02a3: ldloc.s 4 IL_02a5: brtrue.s IL_02b4 IL_02a7: nop IL_02a8: ldstr "s6" IL_02ad: stloc.2 IL_02ae: nop IL_02af: br IL_0fbd IL_02b4: ldloc.1 IL_02b5: ldstr "195.216.243.7" IL_02ba: call bool [mscorlib]System.String::op_Equality(string, string) IL_02bf: ldc.i4.0 IL_02c0: ceq IL_02c2: stloc.s 4 IL_02c4: ldloc.s 4 IL_02c6: brtrue.s IL_02d5 IL_02c8: nop IL_02c9: ldstr "s7" IL_02ce: stloc.2 IL_02cf: nop IL_02d0: br IL_0fbd IL_02d5: ldloc.1 IL_02d6: ldstr "217.199.217.8" IL_02db: call bool [mscorlib]System.String::op_Equality(string, string) IL_02e0: ldc.i4.0 IL_02e1: ceq IL_02e3: stloc.s 4 IL_02e5: ldloc.s 4 IL_02e7: brtrue.s IL_02f6 |
Цитата (JonMagon) представлял себе IL код конструкции switch немного иначе. Там есть маленькое отличие, но можно сказать идентичны, switch пропускает brtrue.s если истинный, if если ложный. Проще всего это обосновать в JS, следующим кодом. Код (false || false || true || false) |
Цитата (Дарк) switch пропускает brtrue.s если истинный, if если ложный. Судя по IL коду, получается действительно так. Код IL_001f: call bool [mscorlib]System.String::op_Equality(string, string) IL_0024: brtrue.s IL_0035 Разница не особенно заметна, да и не думаю, что это как–то сказывается на общей картине, но, как стало заметно, при декомпиляции на тот же C# — сразу многоэтажные конструкции if'ов. Не оказываю поддержку посредством ЛС/ICQ/Skype/AIM/XMPP/E-mail.
|
Фенечка), это нужно в первую очередь тем, кто не помнит или не знает номер сервера, на котором находится сайт. особо остро вопрос встает при недоступности серверов. у нас есть тема, посвященная сводкам работы серверов, там публикуются только номера, а не адреса неработающих сайтов. для ориентации в пространстве когда сервер недоступен это полезно как владельцам сайтов, так и окружающим со сходными проблемами
|
webanet, а в исходном коде сайта в самом низу разве не номер сервера указывается?
Хотя меня по правде больше интересует число до номера сервера. Это что то вроде времени генерации страницы? Прикрепления:
7786522.png
(0.8 Kb)
Сообщение отредактировал Маленыч - Понедельник, 30 Июн 2014, 15:29:22
|
| |||