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

Вниз

Помогите с айпишником   Найти похожие ветки 

 
Alex21   (2003-12-25 15:13) [0]

Здраствуйте мастера у меня такая проблема. Вот алгоритм сбора айпишников , но он их собирает если все комы включены. Помогите срочно надо...

Procedure ipadress;
var zzz: integer;
var qqq:integer;
WSAData : TWSAData;
p : PHostEnt;
Name : array [0..$FF] of Char;
begin
qqq:=1;
for zzz:= qqq to form1.StringGrid1.RowCount -1 do
begin
Application.ProcessMessages;
WSAStartup($0101, WSAData);
GetHostName(name, $FF);
try
p := GetHostByName(Pchar(form1.StringGrid1.Cells[0,zzz]));
except
//Хрен знает
end;
Application.ProcessMessages;
Form1.StringGrid1.Cells[1,zzz]:=(inet_ntoa(PInAddr(p.h_addr_list^)^));
WSACleanup;
end;
end;

Помогите срочно прошу........
Александр....


 
Lion_ua   (2003-12-25 15:21) [1]

сиплюсплюсный код:
//---------------------------------------------------
void MachineIP(char *result)
{
WSADATA WSAData;

WSAStartup(MAKEWORD(1,1), &WSAData);

char dot[6];
int iResult;
int i = 0;
u_long *ppIpNO;
u_long *pIpNO;
HOSTENT FAR *lphostent;
u_long ipHO;
unsigned char binIp[4];
int iterations = 0;

//Get local host name and crudely validate
char szHostName[100];
*result = 0;

iResult = gethostname(szHostName, sizeof(szHostName));
// printf("%d %s",iResult,szHostName);
if ((iResult != 0) || (lstrcmp(szHostName, "")==0))
return;

//Lok up this host info via supplied name
lphostent = gethostbyname(szHostName);
if (lphostent == NULL)
return;
//Retreive first entry (might have multiple connects)
do
{
iterations++;
ppIpNO = (u_long *)lphostent->h_addr_list;
if (ppIpNO+i == NULL)
return;
pIpNO = ((u_long *)*(ppIpNO+i));
if (pIpNO == NULL)
return;

//convert back to host order, since SOCKADDR_IN expects that
//MessageBox(NULL,"z","x",MB_OK);
ipHO = ntohl(*pIpNO);

binIp[0] = (BYTE)((ipHO & 0xff000000) >> 24);
itoa(binIp[0], dot, 10);
strcat(result,dot);
binIp[1] = (BYTE)((ipHO & 0x00ff0000) >> 16);
itoa(binIp[1], dot, 10);
strcat(result, "."); strcat(result, dot);
binIp[2] = (BYTE)((ipHO & 0x0000ff00) >> 8);
itoa(binIp[2], dot, 10);
strcat(result, "."); strcat(result, dot);
binIp[3] = (BYTE)(ipHO & 0x000000ff);
itoa(binIp[3], dot, 10);
strcat(result,"."); strcat(result, dot);
strcat(result,"\r\n");
i++;
} while ((pIpNO != NULL) && (iterations < 6));
WSACleanup();
PostQuitMessage(0);
return;
}


 
Lion_ua   (2003-12-25 15:31) [2]

Используеш WinSocks API, описанные в модуле WinSocks.pas
--------------------------------------------------------
uses
WinSock;

procedure GetHostInfo(var Name, Address: string);
var
WSAData: TWSAData;
HostEnt: PHostEnt;
begin
{ no error checking...}
WSAStartup(2, WSAData);
SetLength(Name, 255);
Gethostname(PChar(Name), 255);
SetLength(Name, StrLen(PChar(Name)));
HostEnt := gethostbyname(PChar(Name));
with HostEnt^ do
Address := Format("%d.%d.%d.%d",[
Byte(h_addr^[0]),
Byte(h_addr^[1]),
Byte(h_addr^[2]),
Byte(h_addr^[3])]);
WSACleanup;
end;


Кроме того, можно просто бросить TCP компонент с закладки Internet на форму и использовать его свойства.
---------------------------------------------------------
Memo1.Lines.Add(TCP1.LocalHostName);
Memo1.Lines.Add(TCP1.LocalIp);



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

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

Наверх





Память: 0.45 MB
Время: 0.012 c
4-94244
anod
2003-12-21 01:06
2004.02.29
Пункт меню в чужом приложении


3-93798
NoName
2004-02-03 16:08
2004.02.29
Проблема c DBEdit


8-94030
Agent[007]
2003-10-29 15:46
2004.02.29
OpenGL - перпендикуляр


6-94049
dolphin1
2003-12-24 13:01
2004.02.29
ICQ


1-93925
Sour
2004-02-15 12:49
2004.02.29
Как определить размер (высоту формы) без меню?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский