View Full Version : بدست آوردن آدرس IP
www2006
شنبه 15 اردیبهشت 1386, 18:48 عصر
سلام
با چه دستوری میشه آدرس IP رو بدست آورد ؟
توضیح : وقتی با دستور ipconfig تو محیط command ، میخوایم IP رو ببینیم ، ( با توجه به تنظیمات کامپیوتر و نرم افزارهایی مثل vmware ) ممکنه IP های مختلفی رو نشون بده ، من اون IP ای رو میخوام که ISP ای که ازش اینترنت میگیریم بهمون میده ...
با تشکر ..
rezaaaaaaaaa
شنبه 15 اردیبهشت 1386, 18:56 عصر
سلام ، می تونی با Netstat کار کنیییییییییی
SYNDROME
شنبه 15 اردیبهشت 1386, 19:19 عصر
با سلام
از دستور زیر برای اجرای دستورات در Run استفاده می شود
var
windir : array [0 .. MAX_PATH-1] of char;
Result : String;
Result1 : PChar;
begin
SetString(Result,windir,GetWindowsDirectory(windir ,MAX_PATH));
Result := Result + 'Ping 192.120.120.120 ->a.text';
Result1 := pchar(Result);
WinExec( Result1 , SW_NORMAL)
end;
دستور بالا Ping کرده و جواب را در فایل a.textقرار می دهد.
www2006
شنبه 15 اردیبهشت 1386, 19:55 عصر
از دستور زیر برای اجرای دستورات در Run استفاده می شود
میشه دقیقا بگین دستورات بالا چیکار میکنه ؟
SYNDROME
شنبه 15 اردیبهشت 1386, 20:49 عصر
با سلام
شما برای اینکه در شبکه بتوانید کامپیوتر دیگر را Pingکنید در
StartMenu->Run
تایپ می کنید
Ping 192.10.10.10
(192.10.10.10 = کامپیوتر مقابل)
حال شما با دستور گفته شده قبل همین کار را می توانید بکنید.
(البته از روش دوستمان سخت تر است.ولی کاملا سیستمی می باشد)
Identifier
شنبه 15 اردیبهشت 1386, 20:54 عصر
uses Winsock;
function GetIPFromHost
(var HostName, IPaddr, WSAErr: string): Boolean;
type
Name = array[0..100] of Char;
PName = ^Name;
var
HEnt: pHostEnt;
HName: PName;
WSAData: TWSAData;
i: Integer;
begin
Result := False;
if WSAStartup($0101, WSAData) <> 0 then begin
WSAErr := 'Winsock is not responding."';
Exit;
end;
IPaddr := '';
New(HName);
if GetHostName(HName^, SizeOf(Name)) = 0 then
begin
HostName := StrPas(HName^);
HEnt := GetHostByName(HName^);
for i := 0 to HEnt^.h_length - 1 do
IPaddr :=
Concat(IPaddr,
IntToStr(Ord(HEnt^.h_addr_list^[i])) + '.');
SetLength(IPaddr, Length(IPaddr) - 1);
Result := True;
end
else begin
case WSAGetLastError of
WSANOTINITIALISED:WSAErr:='WSANotInitialised';
WSAENETDOWN :WSAErr:='WSAENetDown';
WSAEINPROGRESS :WSAErr:='WSAEInProgress';
end;
end;
Dispose(HName);
WSACleanup;
end;
http://delphi.about.com/library/graphics/getip.gif
procedure TForm1.Button1Click(Sender: TObject);
var
Host, IP, Err: string;
begin
if GetIPFromHost(Host, IP, Err) then begin
Edit1.Text := Host;
Edit2.Text := IP;
end
else
MessageDlg(Err, mtError, [mbOk], 0);
end;
http://delphi.about.com/od/networking/l/aa103100a.htm
www2006
شنبه 15 اردیبهشت 1386, 21:12 عصر
با سلام
شما برای اینکه در شبکه بتوانید کامپیوتر دیگر را Pingکنید در
StartMenu->Run
تایپ می کنید
Ping 192.10.10.10
با تشکر .. ولی سوال من بدست آوردن آدرس IP کامپیوتر خودم بود نه Ping کردن به یک کامپیوتر دیگه ی شبکه ..
تشکر از آقای ذوالقدری .. دقیقا جواب من همین کد بود ...
SYNDROME
شنبه 15 اردیبهشت 1386, 21:49 عصر
با سلام
انگار اشتباه کردم.
به هر حال کدی که در بالا ذکر شد کل دستوراتی را که در Runاجرا می شود اجرا می کند و کارایی بالایی دارد.(مانند فراخوانی 1-ماشین حساب ویندوز2-فراخوانی NetMeeting و .......)
Delphi_Developer
یک شنبه 16 اردیبهشت 1386, 14:19 عصر
این رو هم یه نگاهی کن به دردت میخوره :
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.