Форум: "Сети";
Текущий архив: 2003.03.31;
Скачать: [xml.tar.bz2];
ВнизА можно с mailslot через Winsock работать? Найти похожие ветки
← →
nvv_fr (2003-02-05 15:25) [0]А если можно, то как? Примерно где рыть...
Зы - Winsock - в смысле с удалленой машиной серез инет...
Есть подозоение, что можно, ибо net send передает сообщение очень далекому ip, причем динамически созданому на дайлапе ....
Звиняюсь за еще один глупый вопрос...
← →
_Narayan_ (2003-02-05 17:30) [1]А ты понимаешь что делает net send ?
Звиняюсь за еще один глупый ответ...
← →
nvv_fr (2003-02-05 22:13) [2]Ну как сказать. Невозможно всего знать.
С утра спросил, какой какой порт использует net send...
Вы ответили, что не порты, а майлслоты... Ладно, поискал на гугле, нашел фрагменты кода для этого дела, типа
CreateMailslot...
Но вот - для lpName везде фигурируют имена машин, типа в локалке...
Но с другой стороны - net send какой-то_ip_хоть_с_америки Привет
и сообщение ушло туда в америку... Посему и возник такой глупій вопрос. Так что мажете считать, что я понятия не имею, как работает net send, если это томожет вам дать более вразумительный ответ...
То есть, вопрос - как программно сделать
net send какой-то_ip_хоть_с_америки Привет
(имеется ввиду не запустить net send на выполнение, а через соотв. апи)
Зы - общее понятие и некий опыт с winsock есть, если это важно для ответа...
← →
Ihor Osov'yak (2003-02-06 17:07) [3]А в чем проблема?
Ставишь снифер и делаешь net send тому американу на его далекий айпи. И изучаешь внимательно, то что снифер покажет..
А покажет он, вероятнее всего, работу по IP/UDP в районе 135..138 портов, ну типа netbios сервисов....
Ну а потом берешь в руки Indy с его IdUDPClient и пытаешся это дело повторить...
← →
_Narayan_ (2003-02-07 09:39) [4]2 nvv_fr
почему бы не получить из ip имя и
отправляй себе на здоровье.
Другое дело что включенный фаервол
не пропустит, или винда не NT, или
служба сообщений отключена.
Да мало ли что.
Вот модуль (имя из ip адреса)
Кое-что, кстати, здесь подсмотрел.
Нужен искодник примера пиши на мыло.
unit mNetUtils;
interface
uses Windows,Variants,WinSock,SysUtils;
Type TLanguage=(Rus,Eng);
const NO_ERROR=0;
ERROR_HOST_NOT_FOUND=1;
ERROR_CAN_NOT_LOAD_WINSOCKETS=2;
ERROR_EMPTY_IPADDR_PARAMETR=4;
function mIpAddrToStrName(const IpAddr: String; var Host :PHostEnt): Byte;
function mGetErrorText(ErrorCode: Byte; Language: TLanguage): String;
implementation
function mIpAddrToStrName(const IpAddr: String; var Host :PHostEnt): Byte;
var wsadt : wsadata;
Destino :in_addr;
Retorno :integer;
begin
If (Trim(IpAddr)="") then
begin
Result:=ERROR_EMPTY_IPADDR_PARAMETR;
Exit;
end;
Retorno:=WSAStartup($0101,wsadt);
If (Retorno=0) Then
begin
Destino.S_addr := inet_addr(Pchar(IpAddr));
if (Destino.S_addr = 0) then Host := GetHostbyName(PChar(IpAddr)) else Host := GetHostbyAddr(@Destino,sizeof(in_addr), AF_INET);
if (host = nil) then Result:=ERROR_HOST_NOT_FOUND Else Result:=NO_ERROR;
end
Else Result:=ERROR_CAN_NOT_LOAD_WINSOCKETS;
WSACleanup();
end;
function mGetErrorText(ErrorCode: Byte; Language: TLanguage): String;
begin
Case Language Of
Rus: Case ErrorCode Of
NO_ERROR: Result:="Операция прошла успешно";
ERROR_HOST_NOT_FOUND: Result:="Хост не найден";
ERROR_CAN_NOT_LOAD_WINSOCKETS: Result:="Не удаётся загрузить WinSockets";
ERROR_EMPTY_IPADDR_PARAMETR: Result:="Пустой параметр "IpAddr"";
Else Result:="Неизвестная ошибка";
end;
Eng: Case ErrorCode Of
NO_ERROR: Result:="Operation secced";
ERROR_HOST_NOT_FOUND: Result:="Host not found";
ERROR_CAN_NOT_LOAD_WINSOCKETS: Result:="Can not load WinSockets";
ERROR_EMPTY_IPADDR_PARAMETR: Result:="Empty parametr: "IpAddr"";
Else Result:="UnLocated Error";
end;
end;
end;
end.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2003.03.31;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c