Вверх ↑
Этот топик читают: Гость
Ответов: 2125
Рейтинг: 159
#16: 2006-09-12 23:42:54 ЛС | профиль | цитата
oldTV писал(а):
А как это выглядит в коде Hiasm?
Ошибочка была, WSAStartup нехватало, я до этого совместно с Ping использовал, там оно есть.

Вот так должно работать:
карма: 1

0
файлы: 1code_257.txt [1.1KB] [424]
Ответов: 689
Рейтинг: 20
#17: 2006-09-13 09:34:00 ЛС | профиль | цитата
а как использовать совместно с Ping? так может побыстрее будет, а то больно медленный код.
Кстати объяснил бы как он это делает, если не трудно.
Все равно за код отдельное спасибо. Иногда очень нужно.
карма: 0

0
Ответов: 376
Рейтинг: 1
#18: 2006-09-13 09:52:23 ЛС | профиль | цитата
oldTV, это:
ну вот не поворачивается у меня язык сказать: "ходи по шагам "
Плохо это....
Может, ну их нафиг все эти менеджеры: отладочный режим - вот ключ к пониманию функционирования HiAsm
Если его довести до КРАСИВОГО состояния....

или это:
Обычно я вижу несколько альтернатив (возможно - в отличии от других). И, представляется мне, что имею право НЕ угадывать мысли автора (среди этих альтернатив) о целях не работающего примера.


Которого кстати давно не было...

Не поверишь, идеи кончились. Мне показалось, что я уже всё описал. Хотя это только показалось

И вообще я думаю, что в программировании на HiAsm назревает какой-то кризис. Осень - время перемен к лучшему.
Может попозже поговорю с вами на эту тему, если конечно время будет и у вас и у меня.
карма: 1

0
Ответов: 2125
Рейтинг: 159
#19: 2006-09-13 11:03:54 ЛС | профиль | цитата
oldTV писал(а):
а как использовать совместно с Ping? так может побыстрее будет, а то больно медленный код.
Ну, я сначала пинговал адрес, а потом преобразовывал, чтобы только активные показать, но быстрее не будет, так как у Ping-а в коде стоит таймаут 5 сек., и если комп с таким адресом выключен, то будьте добры - ждать 5 сек. Можно, конечно, изменить в коде этот таймаут, но это уже не то. А преобразование адреса в имя тормозит только если невозможно преобразовать, а если можно, то даже если комп и выключен, то тормозов не будет.
карма: 1

0
Ответов: 689
Рейтинг: 20
#20: 2006-09-13 23:24:13 ЛС | профиль | цитата
Обычно я вижу несколько альтернатив (возможно - в отличии от других). И, представляется мне, что имею право НЕ угадывать мысли автора (среди этих альтернатив) о целях не работающего примера.

Я был поражен этим. Очень красиво.

По поводу HiAsm Big FAQ: я предлагаю в него начать включать целые разделы, ну например, работа с компонентом Ping, или работа с компонентом StringTable и туда, в раздел, включать примеры. Кстати работу с SystemTray тоже можно давно в раздел отдельный включить. Лично я твоим HBFAQ обогатился сильно.

2tsdima, я так понял у тебя было так:
ты хисмовским пингом пинговал адрес, получал ответ - пингуется, т.е. тот же адрес (это быстро), далее, если пингуется, посылал адрес в IM.

вот тут как раз и вопрос: каким образом этот код получает имя, зная адрес? Я тебе честно скажу, я не понимаю как. Используя AD? API (видимо да)? Другими словами: как получить имя без твоего кода в Windows например, через WMI или через стандартные средства? Если возможно через WMI, то как? Я вот это не понимаю. Если не трудно, разбери код по строчкам.
карма: 0

0
Ответов: 2125
Рейтинг: 159
#21: 2006-09-14 10:40:58 ЛС | профиль | цитата
как получить имя без твоего кода в Windows например, через WMI или через стандартные средства
Стандартные средства Windows - это как-раз таки API. В данном случае API библиотеки Winsock.

begin
if WSAStartup($101,lwsaData) = 0 then begin // инициализация WinSock Api
addr := inet_addr(PChar(ToString(dt))); // преобразование строки адреса в 4-х байтовый IP
e := gethostbyaddr(@addr,4,AF_INET); // запрос информации о хосте с указанным IP
if Assigned(e) then // если хост с таким IP найден
_hi_OnEvent(onHostName, string(e.h_name)); // вызываем событие с именем хоста
WSACleanUp; // завершение работы с Winsock
end;
end;


Используемые функции библиотеки Winsock: WSAStartup,WSACleanUp,inet_addr, и наконец, функция gethostbyaddr, ради которой всё это и городилось
карма: 1

0
Главный модератор
Ответов: 2997
Рейтинг: 395
#22: 2006-09-15 08:46:11 ЛС | профиль | цитата
Пример CPU Remote Usage содержит обращение к удалённому компьютеру через WMI на получение его имени. Однако таким способом нельзя узнать имя произвольного компа в сети. Существует модификация этого примера для получения статуса процессоров на N компьтерах. В нём встроена функция ping для проверки наличия компьютера в сети в данный момент. Если интересно - пишите письма.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 689
Рейтинг: 20
#23: 2006-09-15 20:48:04 ЛС | профиль | цитата
Интересно. Nic, если не трудно, давай устроим специфическую переписку здесь. Хочу получить hostname, зная hostnameIP. Быстрее чем код tsdima, он, его код, медленный. WMI видимо подойдет, но я не могу понять как. Правда, если не трудно, распиши код пошагово. Ты мне очень часто помогал, очень продуктивно, я хочу этот, давний, вопрос, закрыть.

как наиболее быстро получить hostname зная hostnameIP?

[size=-2]------ Добавлено в 20:48
P.S. позвони админу не есть правильный ответ
карма: 0

0
Главный модератор
Ответов: 2997
Рейтинг: 395
#24: 2006-09-15 22:13:07 ЛС | профиль | цитата
1. Запускаешь пример.
2. В поле Edit вводишь IP.
3. Нажимаешь каппу Start.
4. Над графиком видишь имя компа и количество его процессоров.
5. Затем смотришь схему. Пока к WMI можно обратиться только через VBJScript.
6. Копируешь его к себе в схему.
7. Используешь его как тебе необходимо.

P.S.
Не забудь записаться на другом компе в группу локальных админов. А вот тренироваться можешь и на своём. Оставь в поле Edit одну только точку - это что-то вроде localhost для WMI. Удачи!
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 689
Рейтинг: 20
#25: 2006-09-16 08:34:29 ЛС | профиль | цитата
Спасибо, Nic, я немного модифицировал скрипт, проверь пожалуйста, верно ли?
Ниже схема со скриптом:
code_265
Этот код значительно быстрее чем через WinSock API. Но работать я так понял он будет там, где есть WMI (т.е. на WinNT 4.0 - не факт что будет), ну и если не добавлен как пользователь в группу Администраторов, то тоже не факт что будет (пока проверить не могу, на работе XP упала).
карма: 0

0
файлы: 1code_265.txt [1.2KB] [470]
Главный модератор
Ответов: 2997
Рейтинг: 395
#26: 2006-09-16 14:51:01 ЛС | профиль | цитата
oldTV, Версии WMI существуют для всех Windows кроме версий 3.хх и ниже. Если установить на NT4.0 и прописаться в группу администраторов, то скорее всего работать будет, хотя с NT не работал, знакомство с WMI моё состоялось недавно на базе W2K Server и конечно длагодаря VBJScript компоненту.

P.S.
Ваш пример чуть подчистил на предмет корректности подключения к удалённой машине:
code_269
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 1code_269.txt [1.1KB] [550]
Ответов: 689
Рейтинг: 20
#27: 2006-09-16 21:30:40 ЛС | профиль | цитата
Nic, вот почему-то по поводу WMI у меня осело, что в NT4.0 его до какого-то SP нет. Проверим.

С точки зрения корректности подключения к удаленной машине я бы использовал вот такой немного модифицированный код:
code_271
карма: 0

0
файлы: 1code_271.txt [1.6KB] [463]
Главный модератор
Ответов: 2997
Рейтинг: 395
#28: 2006-09-16 23:17:22 ЛС | профиль | цитата
oldTV, говоря о существовании WMI под ранние Windows, совсем не имел в виду их наличие в дистрибутиве и сервис-паках. WMI родился позже этих ОС и был выпущен отдельными пакетами для них.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
28
Сообщение
...
Прикрепленные файлы
(файлы не залиты)