HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #2301  
Старый 11.11.2008, 16:53
-nEx-
Новичок
Регистрация: 11.11.2008
Сообщений: 20
Провел на форуме:
114968

Репутация: 2
По умолчанию

Ну так кто-нибудь поможет или нет?
 
Ответить с цитированием

  #2302  
Старый 11.11.2008, 17:37
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме:
1777055

Репутация: 347
По умолчанию

Цитата:
Сообщение от -nEx-  
Как определить динамичный IP ? А то при попытке определить выдает не верный айпи.
Код:
program getip;
{$APPTYPE CONSOLE}

uses windows,wininet;
{-----------------------------------}
function DownloadURL(const aUrl: string; pBuf: pChar; dwSize: cardinal): Boolean;
var
  hSession: HINTERNET;
  hService: HINTERNET;
  dwBytesRead: DWORD;
begin
 Result := False;
 hSession := InternetOpen('MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
 if hSession<>nil then begin
  hService := InternetOpenUrl(hSession, PChar(aUrl), nil, 0, 0, 0);
  if hService<>nil then begin
   if not InternetReadFile(hService, pBuf, dwSize, dwBytesRead) then begin
    InternetCloseHandle(hService);
	InternetCloseHandle(hSession);
    exit;
   end;
   InternetCloseHandle(hService);
  end else begin
   InternetCloseHandle(hSession);
   exit
  end; 
  InternetCloseHandle(hSession);
 end else exit;
 result:=true;
end;
{-----------------------------------}
function GetRealIp():string;
var buf:array[0..4096]of char;
    s,ip:string;
    i1,i2:integer;
begin
 result:='';
 if not DownloadURL('http://www.cmyip.com/',@buf,sizeof(buf)) then exit;
 s := string(pChar(@buf));
 i1:= pos('My IP is  ',s) + 10;
 i2:= pos('   - Quick and Easy way to SEE my IP address - CmyIP.com',s);
 result:=copy(s,i1,i2-i1);
end;

BEGIN
 writeln(GetRealIp());
END.
вот это должно сработать.

Цитата:
Сообщение от TheJahte  
Куда этот гребаный windows.tpu ему засунуть )) чтоб он заткнулся ?
Турбо паскалем ты это точно не откомпилишь))
бери делфи или фри паскаль http://freepascal.org/download.var
 
Ответить с цитированием

  #2303  
Старый 11.11.2008, 20:53
diznt
Постоянный
Регистрация: 31.01.2008
Сообщений: 643
Провел на форуме:
6128108

Репутация: 445


По умолчанию

ап! Как принять ответ от сервера?
 
Ответить с цитированием

  #2304  
Старый 11.11.2008, 21:23
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме:
1777055

Репутация: 347
По умолчанию

Цитата:
Сообщение от diznt  
ап! Как принять ответ от сервера?
смотри мой пост на предыдущей странице https://forum.antichat.ru/showpost.php?p=938023&postcount=2310
там функция DownloadURL закачивает страничку с сайта. Я догадываюсь что тебе как бы нужен метод POST, для этого вместо InternetOpenUrl используй HttpOpenRequest пример которого есть тут: https://forum.antichat.ru/showpost.php?p=937359&postcount=2
 
Ответить с цитированием

  #2305  
Старый 11.11.2008, 21:34
groupby
Познающий
Регистрация: 21.09.2008
Сообщений: 42
Провел на форуме:
127017

Репутация: 61
По умолчанию

Цитата:
Сообщение от bons  
!
Тебе не кажется,
что твой код - это забивание гвоздей КУВАЛДОЙ )))

А что делать, если сайты с которых вы пытаетесь получить IP недоступны в данное время )

Думаю этот код намного юзабельней и лучше:
http://delphi-faq.zoxt.net/z3.htm
 
Ответить с цитированием

  #2306  
Старый 11.11.2008, 21:45
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме:
1777055

Репутация: 347
По умолчанию

Цитата:
Сообщение от groupby  
Тебе не кажется,
что твой код - это забивание гвоздей КУВАЛДОЙ )))

А что делать, если сайты с которых вы пытаетесь получить IP недоступны в данное время )

Думаю этот код намного юзабельней и лучше:
http://delphi-faq.zoxt.net/z3.htm
не кажется.
так вы узнаете IP-адреса всех сетевых интерфейсов, которые могут не иметь никакого отношения к твоему IP в интернете.
в большинстве случаев IP пользовательского компа можно узнать только вот так забивая гвозди кувалдой...
Погугли по теме Network Address Translation
 
Ответить с цитированием

  #2307  
Старый 11.11.2008, 23:03
groupby
Познающий
Регистрация: 21.09.2008
Сообщений: 42
Провел на форуме:
127017

Репутация: 61
По умолчанию

Цитата:
Сообщение от bons  
Погугли по теме Network Address Translation


Я за работу с сетью и сетевыми протоколами деньги получаю ) Не учи плиз.

Все локальные IP сразу можно отбросить:
127.*, 192.*, 10.*, 172.*

Оставшийся адрес и есть внешний.
 
Ответить с цитированием

  #2308  
Старый 12.11.2008, 00:56
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме:
1777055

Репутация: 347
По умолчанию

Цитата:
Сообщение от groupby  


Я за работу с сетью и сетевыми протоколами деньги получаю ) Не учи плиз.

Все локальные IP сразу можно отбросить:
127.*, 192.*, 10.*, 172.*

Оставшийся адрес и есть внешний.
внешнего там может и не быть.
Ведь суть NAT как раз в том, что вместо IP твоего компа подставляется IP шлюза. Причем где этот шлюз твой компьютер может не знать в принципе.
И внешний адрес этого шлюза достоверно можно узнать ТОЛЬКО тем способом, код к которому я выложил.

P.S. а все-таки у меня длиннее))
 
Ответить с цитированием

  #2309  
Старый 12.11.2008, 11:41
groupby
Познающий
Регистрация: 21.09.2008
Сообщений: 42
Провел на форуме:
127017

Репутация: 61
По умолчанию

Цитата:
Сообщение от bons  
внешнего там может и не быть.
Если нет внешнего IP, значит компьютер не имеет прямого подключения к интернету (т.е. подключен через другой компьютер). И значит найденнный по вашей технологии IP будет не IP адресом конечного компьютера в сети, а лишь IP его роутера. А нафиг нужен IP роутера, если через него связаться с компьютером все равно нельзя (можно, если прокинуть порты, но все равно в итоге программе при таком способе прокидывания внешний IP знать уже не надо)?

Оффтоп у нас получается )
В общем какой итог:
Если нужен внешний IP вашего компа - юзайте мой способ.
Если нужен внешний IP вашей внутренней сети, то способ bons'a
 
Ответить с цитированием

  #2310  
Старый 12.11.2008, 18:29
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме:
4037638

Репутация: 1821


Отправить сообщение для De-visible с помощью ICQ
По умолчанию

Цитата:
Сообщение от diznt  
ап! Как принять ответ от сервера?
Для кого писал?
http://forum.antichat.ru/showpost.php?p=788789&postcount=12

здесь показано на сокетах.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ