|
|
|
Поиск ПК в LAN. Тормоза при > 50.
|
|||
|---|---|---|---|
|
#18+
Есть необходимость мониторить изменения в локальной сети (больше 10 подсетей типа 192.168.0.1). Пока только сканирую пингами отвечающие ПК. Дома 3-5 сканирует относительно быстро (с учетом таймаутов отсутствия ответов). Параллельные запросы пока специально не пробую. Или зря? На работе условно если в ограничиваемый диапазон скана попадает больше 50 ПК, то потом в области: Код: java 1. 2. 3. 4. 5. 6. 7. 8. сильно замыкается. Последний реальный тест длился где-то ночь после окончания пингования ПК на стадии "Result counting ...": D:\part1>java MS Checking ... 2, 3, 4, 5, 6, 8, 10, 11, 12, 13, 16, 17, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29 , 30, 31, 32, 33, 35, 36, 38, 39, 41, 43, 44, 45, 46, 50, 52, 53, 55, 59, 60, 62 , 66, 68, 69, 70, 72, 75, 76, 77, 79, 81, 82, 83, 86, 87, 88, 89, 90, 91, 94, 95 , 96, 97, 98, 99, 100, 104, 105, 106, 108, 110, 111, 112, 114, 117, 118, 125, 12 6, 127, 130, 131, 132, 133, 135, 136, 137, 139, 140, 142, 143, 148, 149, 150, 17 4, 193, 200, 201, 202, 204, 206, 209, 210, 220, 221, 222, 223, 224, 237, 242, 24 3, 244, 246, 248, 250, 254, IP check completed collection.size =116 Result counting ... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 5 7 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 Collection size: 116 Пока только пингую. Потом на отвечающие хочу запускать доп. проверки (определить MAC, имя ...) и новые и/или изменившиеся добавлять в базу для последующего. Но при таких задержках ПК может в другой город уже уехать :) Может неправильно, но пока проверяю, отвечает-ли ПК системным пингом, потому что ср-вами java (по памяти кажись пробовал java.net.ping) 8.8.8.8 получил в ответ что лежит, хотя системный говорил что отвечает ... :( Полный код под спойлером. MS.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. Comp.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. checkip.bat @echo off ping -n 1 -l 1 %1 >> nul if %errorlevel%==0 echo Host is UP! if %errorlevel%==1 echo Host is DOWN! rem pause Подскажите пожалуйста, почему появляются эти задержки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 12:08:34 |
|
||
|
Поиск ПК в LAN. Тормоза при > 50.
|
|||
|---|---|---|---|
|
#18+
olexande, используй, тотже ping, но без Runtime.getRuntime().exec и тд InetAddress.isReachable(...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 14:16:01 |
|
||
|
Поиск ПК в LAN. Тормоза при > 50.
|
|||
|---|---|---|---|
|
#18+
И оно повлияет на "работу по перебору" collection? тормоза как раз происходят при переборе коллекции ... Не при ее формировании ..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 14:30:57 |
|
||
|
Поиск ПК в LAN. Тормоза при > 50.
|
|||
|---|---|---|---|
|
#18+
"Затык" по времени происходит между выводами "collection.size" и "Collection size". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 14:33:11 |
|
||
|
Поиск ПК в LAN. Тормоза при > 50.
|
|||
|---|---|---|---|
|
#18+
А вас не смущает что во втором цикле перечислены вообще все адреса, независимо от того что найдено в первом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 14:37:17 |
|
||
|
Поиск ПК в LAN. Тормоза при > 50.
|
|||
|---|---|---|---|
|
#18+
Может я чего-то не правильно понял/сделал, но в первом цикле я добавляю в коллекцию список "отвечающих" компов ... Код: java 1. 2. 3. 4. 5. Если результат проверки будет негативным, то он (ПК) по идее в список (коллекцию) попасть не должен? Или где-то между логикой и реализацией закралась ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 15:06:58 |
|
||
|
Поиск ПК в LAN. Тормоза при > 50.
|
|||
|---|---|---|---|
|
#18+
olexandeМожет я чего-то не правильно понял/сделал, но в первом цикле я добавляю в коллекцию список "отвечающих" компов ... Если результат проверки будет негативным, то он (ПК) по идее в список (коллекцию) попасть не должен? Или где-то между логикой и реализацией закралась ошибка? Скорее всего вы нас где-то обмынываете. Код у вас один. А результаты его работы из старой версии, которую вы закоментировали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 15:09:12 |
|
||
|
Поиск ПК в LAN. Тормоза при > 50.
|
|||
|---|---|---|---|
|
#18+
olexande оно повлияет на "работу по перебору" collection? тормоза как раз происходят при переборе коллекции ... Не при ее формировании ..... . "Затык" по времени происходит между выводами "collection.size" и "Collection size". Т.е. Вы все валите на java, на итератор, 4.bat - вне подозрений. Ну сделай так, хоть убедитесь что итератор здесь ни причем: //result = g1.checkCompIPUser(str); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 15:10:08 |
|
||
|
Поиск ПК в LAN. Тормоза при > 50.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, да не, он выводит i2, а не значение итератора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 15:11:26 |
|
||
|
Поиск ПК в LAN. Тормоза при > 50.
|
|||
|---|---|---|---|
|
#18+
В первой итерации я проверяю все ПК с адресами от 1 до 254 (192.168.2.1 - 192.168.2.254 согласно коду в "checkCompIP" класса Comp) Согласно вывода - в первом выводе указаны адреса "с пробелами" - пробелы, это не ответившие на момент проверки адреса. То, что они в выводах совпадают, так это ИМХО логично ... Было-бы странно, если-бы они различались. Планировал во второй итерации пробовать собирать MAC-адреса для добавления всего "щастя" в БД. Но нарвался на эту задержку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 15:14:43 |
|
||
|
Поиск ПК в LAN. Тормоза при > 50.
|
|||
|---|---|---|---|
|
#18+
0FDТ.е. Вы все валите на java, на итератор, 4.bat - вне подозрений. Ну сделай так, хоть убедитесь что итератор здесь ни причем: //result = g1.checkCompIPUser(str); я ни на что не валю, я прошу помощи при поиске затыка. При отладке я делал заглушку - вместо проверки (системных пингов) ставил условие, сейчас закоментированое: Код: java 1. И получал правильный вывод от начала и до упора. Дома (88-я сеть) скан проходит до конца. Дольше всего идет "пингование". На работе пробовал ограничивать цикл 1-й итерации до 50 (потому в заголовке темы и такое число) - отрабоатывало быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 15:20:05 |
|
||
|
Поиск ПК в LAN. Тормоза при > 50.
|
|||
|---|---|---|---|
|
#18+
0FDда не, он выводит i2, а не значение итератора Спасибо. Заставило задуматься ... По ходу что-то в этом есть ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 15:24:13 |
|
||
|
Поиск ПК в LAN. Тормоза при > 50.
|
|||
|---|---|---|---|
|
#18+
0FDда не, он выводит i2, а не значение итератора Точно. Вот что значит код хрен разберешь. Ну, пусть нормальное логирование тогда прикручивает и в логе по таймштампам смотрит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 15:31:06 |
|
||
|
Поиск ПК в LAN. Тормоза при > 50.
|
|||
|---|---|---|---|
|
#18+
Извините, но с "нормальное логирование" пока не разобрался, а в кода пока казалось еще относительно не много наворотил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 15:35:29 |
|
||
|
Поиск ПК в LAN. Тормоза при > 50.
|
|||
|---|---|---|---|
|
#18+
А не пробовали для начала тупо вывести все "checkip.bat 192.168.2." в консоль, скопипастить, и запустить руками? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 16:18:48 |
|
||
|
Поиск ПК в LAN. Тормоза при > 50.
|
|||
|---|---|---|---|
|
#18+
olexandeПодскажите пожалуйста, почему появляются эти задержки?Потому, что вы заворачиваете тривиальную задачу в избыточно сложную обёртку: Код: sql 1. P.S. Не забываем, что в cmd проценты удваиваются. Маркировать по "не существует" и "существует, но не пингуется" - оставляется в качестве самостоятельного упражнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 16:24:14 |
|
||
|
Поиск ПК в LAN. Тормоза при > 50.
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov Огромное ВАМ СПАСИБО !!! Благодаря Вам если добавить set fname=result.txt findstr /c:"динамический" %fname% >log.tmp del %fname% move log.tmp %fname% И в итоге получится почти идеал: 192.168.2.2 *-*-*-*-8b-d6 динамический 192.168.2.3 *-*-*-*-8b-43 динамический 192.168.2.4 *-*-*-*-69-92 динамический 192.168.2.5 *-*-*-*-e8-9b динамический ........................... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 17:00:33 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37957958&tid=2130959]: |
0ms |
get settings: |
14ms |
get forum list: |
21ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
88ms |
get topic data: |
20ms |
get forum data: |
5ms |
get page messages: |
89ms |
get tp. blocked users: |
2ms |
| others: | 339ms |
| total: | 588ms |

| 0 / 0 |
