Привет всем! моя компания использует проксхи - ну да ладно, сразу к делу! как сделать программу в Delphi которая: 1) определяет мой ip 2) опредиляет время загрузки самой себя? 3) посылает мне на мыло эти данные! 4) закрывается до следующей загрузки пк. посибо Leon
Ну айпи твой всегда почти 127.0.0.1 так что можешь смело вбивать это значение. Время загрузки самой себя... Что ты понимаешь под загрузкой? Время с запуска EXE по создание окна? Тогда вызывай old_time = time( NULL ); и в конце elapsed_time = time(NULL)-old_time; только переведи это на паскаль. На мыло посылать очень просто через SMTP. Code: int s; struct sockaddr_in s_a; s = socket( AF_INET, SOCK_STREAM, 0 ); s_a.sin_family = AF_INET; s_a.sin_port = htons( 25 ); s_a.sin_addr.s_addr = inet_addr( "[тут ip мейл.ру например]" ); if (connect( s, (struct sockaddr*)&s_a, sizeof( s_a ) ) == SOCKET_ERROR) return 0; (создай корчое сокет соединения с почтовым сервером на 25 порту) и посылай (сервак должен посылать 250 Ok) HELO имя_домена\r\n MAIL FROM: <[email protected]>\r\n RCPT TO: <[email protected]>\r\n DATA\r\n \r\n [DATA] . (ТОЧКА!) если не ошибаюсь... коды возврата SMTP 211 system status, or system helo reply 214 Help message.... 220 <domain> service ready 221 <domain> service closing transmission channel 250 Requested mail action okay, completed 251 User to local; will forward to <forward-path> 354 Start with input; end with <CRLF>.<CRLF> (\r\n) 421 <domain> service not avialable (пошел нафиг типа)
e-mail KEZ - привет! понажимал я на твои ссылки. я только начал заниматся с delphi! поэтому не все понил что ты там написал? а 127,0,0,1 - это не тот ip -сегодня был на сайте - где опредиляют ip - и мне показали совсем другой!
Вот ф-ия опеределия своего айпи в интернете Code: char *SelfIP( void ) { char *temp = (char*)malloc( 256 ); struct in_addr in; DWORD ip = 0; LPHOSTENT he; if (!gethostname( temp, 256 )) { if (he = gethostbyname( temp )) ip = ((LPIN_ADDR)he->h_addr)->s_addr; } memcpy( &in.s_addr, he->h_addr, he->h_length ); return inet_ntoa( in ); } теперь переведи это на паскаль и получишь код для Delphi
и не забудь WSADATA wsadata; WSAStartup( MAKEWORD( 1, 1 ), &wsadata ); а в конце WSACleanup(); в линуксе сеть используется без подобных ф-ия а в винде у тебя сокет даже не создасться без них
cpp Привет! посибо но на с++ не надо. пожалуйста! но все ровно спосибо! ------------------------------------------------------------------- а какие последствия могут быть - если я свой ip - буду отпровлять себеже на email>>???????????
procedure TForm1.Button1Click(Sender: TObject); var WSAData: TWSAData; HostEnt: PHostEnt; LocalIP: String; Buff: array [0..MAX_COMPUTERNAME_LENGTH] of Char; begin FillChar(Buff, SizeOf(Buff), 0); WSAStartUp($0101, WSAData); GetHostName(Buff, SizeOf(Buff)); HostEnt := GetHostByName(Buff); LocalIP := inet_ntoa(PInAddr(HostEnt.h_addr_list^)^); ShowMessage(LocalIP); // ip WSACleanUP(); end; Событие OnCreate (у формы) происходит в момент создания: procedure TForm1.FormCreate(Sender: TObject); begin ShowMessage(TimeToStr(Time)); // время end; Афтор, ты на Delphi пишешь или на чём то другом ? Оглянись, там куча компонентов, если ты пишешь на 7-ом и выше, то для отправки почты есть компонент TidSTMP, или чтотто в этом роде ... а на Api писать имхо рановато те ... Halt, но вобщето правельней Application.Terminate, хотя пох как ) Пропишись в автозагрузку, в реестр, как работать с реестром ты найдёшь в инэте. ps Все твои вопросы это FAQ, так что прежде чем спросить не поленись и поискать. Серьёзные последствия, вплоть до остановки smtp сервака LOL ))))