Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];

Вниз

Мастера нужна помощь ! ( комманды Msdos)   Найти похожие ветки 

 
and_1   (2002-11-28 21:12) [0]

Здравствуйте Мастера ! Решил я создать прогу которая упростит работу в сети!
Перейдем к описанию проги:
Ггрубо говоря все будет выглядеть так: просто кликаешь бутон и на мемке появляется инфа(взависимости что за кнопка)

1)
Будет несколько вкладок(ping,net,nbtstat...)
Вкладка ping. внизу эдит где должен располагаться IP адресс и сама конечно же кнопка пинг. Сколько раз я не спрашивал всегда получал непонятные ответы и не мог въехать в это!
Не могли бы вы написать код который идет после процедуры нажатия на кнопки пинг. (примечания: IP записывается эдите, а результаты в мемке появляются)

2)
В MsDos есть комманда net send <имя компа или IP> <мессага>
Хотелось бы тоже самое сделать на делфе! Как это сделать ?
Ситуация аналогичная, все просто: мемка, эдит(IP или имя компа)
и буттон.

3) И наконец такая комманда как nbtstat с параметром -a <IP> чтоб узнать имя компа.
Все также Мемка, эдит и буттон.

Заранее благодарен. Спасибо.


 
and_1   (2002-11-28 22:33) [1]

Вот пинг я нашел в статьях!!! Но появился вопрос!!! Вот код:

***
pHostEn := gethostbyname( "delphi.mastak.com");
error := GetLastError();
if (error <> 0) then
begin
Memo1.SetTextBuf("Error in call to"+
"gethostbyname().");
Memo1.Lines.Add("Error code: "+IntToStr(error));
Exit;
end;
***

А я хотел бы, чтоб можно было вводить имя в эдите! пробовал вот так:

***
pHostEn := gethostbyname( "edit1.text");
error := GetLastError();
if (error <> 0) then
begin
Memo1.SetTextBuf("Error in call to"+
"gethostbyname().");
Memo1.Lines.Add("Error code: "+IntToStr(error));
Exit;
end;
***

Но не выходит в чем проблема ? подскажите как сделать так чтобы имя бралось из текста эдита!!! заранее благодарен!


 
and_1   (2002-11-28 22:36) [2]

В статьях нарыл про пинг! Тока вопрос! Как сделать чтобы имя компа бралось из эдита ????
***
pHostEn := gethostbyname( "delphi.mastak.com");
error := GetLastError();
if (error <> 0) then
begin
Memo1.SetTextBuf("Error in call to"+
"gethostbyname().");
Memo1.Lines.Add("Error code: "+IntToStr(error));
Exit;
end;
***

Пробовал вот так и не получилось!

***
pHostEn := gethostbyname( "edit1.text");
error := GetLastError();
if (error <> 0) then
begin
Memo1.SetTextBuf("Error in call to"+
"gethostbyname().");
Memo1.Lines.Add("Error code: "+IntToStr(error));
Exit;
end;
***

Как сделать ??? помогите мастера плз!


 
and_1   (2002-11-28 22:37) [3]

В статьях нарыл про пинг! Тока вопрос! Как сделать чтобы имя компа бралось из эдита ????
***
pHostEn := gethostbyname( "delphi.mastak.com");
error := GetLastError();
if (error <> 0) then
begin
Memo1.SetTextBuf("Error in call to"+
"gethostbyname().");
Memo1.Lines.Add("Error code: "+IntToStr(error));
Exit;
end;
***

Пробовал вот так и не получилось!

***
pHostEn := gethostbyname( "edit1.text");
error := GetLastError();
if (error <> 0) then
begin
Memo1.SetTextBuf("Error in call to"+
"gethostbyname().");
Memo1.Lines.Add("Error code: "+IntToStr(error));
Exit;
end;
***

Как сделать ??? помогите мастера плз!


 
and_1   (2002-11-28 22:38) [4]

сори за три ответа.


 
VideoLord   (2002-11-28 23:11) [5]

Может стоит так сделать :-)

pHostEn := gethostbyname(edit1.text);
error := GetLastError();
if (error <> 0) then
begin
Memo1.SetTextBuf("Error in call to"+
"gethostbyname().");
Memo1.Lines.Add("Error code: "+IntToStr(error));
Exit;
end;


 
videolord   (2002-11-28 23:15) [6]

А по поводу NetSend и NbtStat придется разбираться в протоколе NetBEUI (NetBIOS). Если не хочется копаться в протоколе, то можно сделать через ж..у, но работать тоже будет :-)

Когда мне нужно было такое сделать, я просто из своей проги на делфях вызывал (типа WinExec или CreateProcess) например:

nbtstat.exe -a 192.168.0.1 > aaa.txt

Ждал завершения процесса

WaitForSingleObject()

и смотрел, что написано в aaa.txt

Читай хелп по вышеуказанным функциям и все легко сделаешь...


 
Opuhshii   (2002-11-29 08:09) [7]

2and_1 © (28.11.02 21:12)
в MsDos нет комманды net


 
alexteam   (2003-01-15 13:08) [8]

команды net нет
а команда net send есть
вот пример отправки сообщения "ты труп" на машину с ip 192.168.0.2 из под cmd
c:\net send 192.168.0.2 ты труп

{прикол в том что на 2-й машине (действие разворачивалось в комп клубе) чувак играл в counter-strike ...... было смешно }


 
Wonder   (2003-01-15 13:18) [9]

А Windows какая?


 
Zzzzzz   (2003-01-27 16:00) [10]

Чтобы в Pinge адрес брался из Editа необходимо его перевести в PChar, т.е правильно будет
pHostEn := gethostbyname(PChar(edit1.text));


 
NickBat   (2003-01-27 17:40) [11]

Вообще-то net send это не команда ДОС, а директива командной строки Виндоус. Вот только не помню начиная с какой версии.
В Вин2000 отправить сообщение проще простого:

net send comp1 "Тра-ля-ля!"


 
GobliNGuT   (2003-01-27 21:44) [12]

А net send это команда NTVDM (не DOS!!!), и соответственно если ты пишешь под 9х то ничего не получится. Команда работает только на NT системах. По поводу версий - по-моему она была еще на 3-й NT...
NickBat: Это команда для отправки административных сообщений.
А под 9х - через mailslot делается ... нужен пример-пиши


 
Ila   (2003-02-20 11:58) [13]

Комманда как nbtstat с параметром -a <IP> чтоб узнать имя компа.
Можно так (узнать имя компа)

uses Winsock,......;

function My_GetHostName(Address:String):String;
var wVersionRequested : WORD;
lwsaData : WSAData;
pHostEn : PHostEnt;
destAddress : In_Addr;
pAddress:Pointer;
Err:Integer;
begin
Result:="";
wVersionRequested:=MakeWord(1,1);
Err:=WSAStartup(wVersionRequested,lwsaData);
if (Err <> 0) then
begin
Result:=("Error in call to "+"WSAStartup"+IntToStr(Err));
Exit;
end;
try
if (Trim(Address)="") then
Exit;
destAddress.S_addr:=inet_addr(PChar(Address));
pAddress:=@destAddress;
pHostEn:=gethostbyaddr(pAddress,SizeOf(destAddress),AF_INET);
if (pHostEn=nil) then
begin
Err:=WSAGetLastError;
if (Err <> 0) then
Exit;
end;
Result:=String(pHostEn.h_name);
finally
WSACleanup();
end;
end;


 
Anatoly Podgoretsky   (2003-02-20 12:15) [14]

NickBat © (27.01.03 17:40)
Начнем с того, что данная команда была в ДОС еще до появления Виндоус, это относится к LanMan



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2003.04.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.007 c
4-44494
Slap
2003-02-12 16:40
2003.04.14
изменение формата даты в Windows


1-44187
ZEE
2003-04-01 13:51
2003.04.14
Проблемы при копировании текста


1-44252
asdfasdf
2003-03-31 20:14
2003.04.14
Факториал


4-44516
BPK
2003-02-09 13:48
2003.04.14
Объединение меню (не MDI) через DLL


4-44509
dums
2003-02-13 23:29
2003.04.14
такие разные handle-ы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский