View Full Version : ست کردن ip براي کارت شبکه
h_mohamadi
دوشنبه 30 بهمن 1391, 11:19 صبح
سلام بر استاتيد و دوستان گرامي
من مي خواهم با دلفي بر روي کارت شبکه ip آدرس و ساب مسک و گيتوي و دي ان اس ها را با دستور ست کنم
من فقط هرچي در اينترنت گشتم دستورات براي آي پي آدرس و ساب مسک بود.از دوستان خواهش مي کنم کمک کنيد
{$APPTYPE CONSOLE} {$R *.res} uses SysUtils, ActiveX, Variants, ComObj; procedure SetStaticIpAddress(const NetworkCard, IPAddress, Mask :string); const WbemUser =''; WbemPassword=''; WbemComputer='localhost'; wbemFlagForwardOnly = $00000020; var FSWbemLocator : OLEVariant; FWMIService : OLEVariant; FWbemObjectSet : OLEVariant; FWbemObject : OLEVariant; FOutParams : OLEVariant; vIpAddress : OLEVariant; vMask : OLEVariant; oEnum : IEnumvariant; iValue : LongWord; begin FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator'); FWMIService := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2', WbemUser, WbemPassword); FWbemObjectSet:= FWMIService.ExecQuery(Format('SELECT * FROM Win32_NetworkAdapterConfiguration Where Description="%s"',[NetworkCard]),'WQL',wbemFlagForwardOnly); oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant; if oEnum.Next(1, FWbemObject, iValue) = 0 then begin vIpAddress := VarArrayCreate([0, 0], varVariant); vIpAddress[0]:= IPAddress; vMask := VarArrayCreate([0, 0], varVariant); vMask[0]:= Mask; FOutParams:=FWbemObject.EnableStatic(vIpAddress, vMask); // 0 - Successful completion, no reboot required // 1 - Successful completion, reboot required Writeln(Format('ReturnValue %s',[FOutParams])); end else Writeln('Network card not found'); end; begin try CoInitialize(nil); try SetStaticIpAddress('Network card name','192.168.1.1','255.255.255.0'); finally CoUninitialize; end; except on E:EOleException do Writeln(Format('EOleException %s %x', [E.Message,E.ErrorCode])); on E:Exception do Writeln(E.Classname, ':', E.Message); end; Writeln('Press Enter to exit'); Readln; end.
samani
دوشنبه 30 بهمن 1391, 12:07 عصر
شما ميتونيد از دستور Netsh.exe interface ip استفاده كنيد
براي ديدن پارامترهاي مورد استفاده در Command Prompt اين دستور رو تايپ كن
Netsh.exe interface ip /?
براي اطلاعات بيشتر به سايت مايكروسافت (http://support.microsoft.com/kb/242468) رو ببين
اين هم يه مثال
function ChangeIp(ConnectionName, Ip, Netmask, Gateway: string): boolean;
function ExecAndWait(FileName: String; Visibility: integer): integer;
var
zAppName: array [0 .. 512] of char;
zCurDir: array [0 .. 255] of char;
WorkDir: String;
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
Resultado: DWord;
begin
StrPCopy(zAppName, FileName);
GetDir(0, WorkDir);
StrPCopy(zCurDir, WorkDir);
FillChar(StartupInfo, Sizeof(StartupInfo), #0);
StartupInfo.cb := Sizeof(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Visibility;
if not CreateProcess(nil, zAppName, nil, nil, false, CREATE_NEW_CONSOLE or
NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo) then
Result := -1
else
begin
WaitforSingleObject(ProcessInfo.hProcess, INFINITE);
GetExitCodeProcess(ProcessInfo.hProcess, Resultado);
Result := Resultado;
end;
end;
begin
Result := (ExecAndWait('netsh interface ip set address "' + ConnectionName +
'" ' + ' static ' + Ip + ' ' + Netmask + ' ' + Gateway + ' 1', sw_hide) = 0);
end;
procedure TForm1.Button1Click(Sender: TObject);
var ip: string;
begin
ip := '192.168.0.132';
if ChangeIp('Local Area Connection', ip, '255.255.255.0',
'192.168.0.1') then
showmessage('IP Changed to ' + ip)
else
showmessage('Error changing IP');
end;
h_mohamadi
دوشنبه 30 بهمن 1391, 12:39 عصر
شما ميتونيد از دستور Netsh.exe interface ip استفاده كنيد
براي ديدن پارامترهاي مورد استفاده در run اين دستور رو تايپ كن
Netsh.exe interface ip /?
براي اطلاعات بيشتر به سايت مايكروسافت (http://support.microsoft.com/kb/242468) رو ببين
اين هم يه مثال
function ChangeIp(ConnectionName, Ip, Netmask, Gateway: string): boolean;
function ExecAndWait(FileName: String; Visibility: integer): integer;
var
zAppName: array [0 .. 512] of char;
zCurDir: array [0 .. 255] of char;
WorkDir: String;
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
Resultado: DWord;
begin
StrPCopy(zAppName, FileName);
GetDir(0, WorkDir);
StrPCopy(zCurDir, WorkDir);
FillChar(StartupInfo, Sizeof(StartupInfo), #0);
StartupInfo.cb := Sizeof(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Visibility;
if not CreateProcess(nil, zAppName, nil, nil, false, CREATE_NEW_CONSOLE or
NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo) then
Result := -1
else
begin
WaitforSingleObject(ProcessInfo.hProcess, INFINITE);
GetExitCodeProcess(ProcessInfo.hProcess, Resultado);
Result := Resultado;
end;
end;
begin
Result := (ExecAndWait('netsh interface ip set address "' + ConnectionName +
'" ' + ' static ' + Ip + ' ' + Netmask + ' ' + Gateway + ' 1', sw_hide) = 0);
end;
procedure TForm1.Button1Click(Sender: TObject);
var ip: string;
begin
ip := '192.168.0.132';
if ChangeIp('Local Area Connection', ip, '255.255.255.0',
'192.168.0.1') then
showmessage('IP Changed to ' + ip)
else
showmessage('Error changing IP');
end;
dns ها را چطور ست کنم
samani
دوشنبه 30 بهمن 1391, 13:36 عصر
اگه help رو نگاه ميكردي متوجه ميشدي
Netsh.exe interface ip /?
اينم براي تسريع شدن كارت
netsh.exe interface ip set dnsservers "Local Area Connection" static 4.2.2.4 primary
h_mohamadi
دوشنبه 30 بهمن 1391, 14:15 عصر
اگه help رو نگاه ميكردي متوجه ميشدي
Netsh.exe interface ip /?
اينم براي تسريع شدن كارت
netsh.exe interface ip set dnsservers "Local Area Connection" static 4.2.2.4 primary
ممنونم ولي من مي خواهم 2 تا DNS را ست کنم ولي نشد.چطور بايد کد دلفي را اصلاح کنم
Result:=(ExecAndWait('netsh interface ip set address "' + ConnectionName +'" ' + ' static ' +Ip+ ' ' +Submask + ' ' + Gateway + '1'+'4.2.2.4 primary' , sw_hide) = 0);
samani
دوشنبه 30 بهمن 1391, 14:33 عصر
دوست عزيز
اگه شما Netsh.exe interface ip /? رو توي Command Prompt ويندوز اجرا كنيد بايد متوجه بشيد
همه دستورات ليست ميشه مثل add , delete , set , ...
وبراي تنظيم يا اضافه كردن dns تو كد دلفي دوباره از دستور exenandwait بايد استفاده كني
h_mohamadi
دوشنبه 30 بهمن 1391, 16:04 عصر
ممنونم ولي اگر بخواهم 2 تا ip ست کنم بايد چيکار کنم طبق عکس زير
h_mohamadi
سه شنبه 01 اسفند 1391, 13:02 عصر
دوستان کمک کنيد؟
h_mohamadi
یک شنبه 06 اسفند 1391, 09:43 صبح
من دستوراتم در ويندوز 7 کار مي کنه اما در ويندوز xp سيستم dns ها را ست نمي کند.
مشکل بعدي هم اين است در زمان حذف Gateway را حذف نمي کند
نمي دانم مشکل از کجاست.
من پروژه ام را گذاشته ام خواهش مي کنم دوستان راهنمايي بفرمايند.
h_mohamadi
دوشنبه 07 اسفند 1391, 13:54 عصر
اگر به جای این التماس و درخواستها ، یکمی به خودتون زحمت جستجو و تحقیق رو میدادید ، جواب کامل شما در پست شماره 6 گفته شده.
من تمام راهنما را خواندم ولي نشد؟؟؟؟؟!!!!
h_mohamadi
یک شنبه 10 شهریور 1392, 12:42 عصر
سلام بر دوستان
من از netsh.exe استفاده کردم ولي مشکلم اين است که برنامه ام در ويندوز سرور 2008 کار نمي کند اما خواستم ببينم فانگشني است که اين کار را بکند
از کامپوننت IP*Works هم خواستم استفاده کنم ولي نشد
يک فانگشن هم گرفتم ولي کار نمي کند
که سمپل را در زير مي گذارم
خواهش مي کنم راهنمايي بفرمائيد
من مي خواهم قسمت هايي که قرمز است را ست کنم
h_mohamadi
سه شنبه 12 شهریور 1392, 12:00 عصر
دوستان مي شود يک راهنمايي بفرمائيد و من مشکل دارم
h_mohamadi
یک شنبه 17 شهریور 1392, 15:33 عصر
چرا هيچ يک از دوستان يک راهنمايي نمي کنند به من؟؟؟؟
من واقعا به اين مورد نياز دارم
Valadi
دوشنبه 18 شهریور 1392, 21:29 عصر
من هم قبلا دنبال چنين چيزي بودم كه يك كامپونت پيدا كردم اسمش يادم نيست
اين كامپونت امكانات جالبي داشت در زمينه IP
h_mohamadi
سه شنبه 19 شهریور 1392, 08:10 صبح
من هم قبلا دنبال چنين چيزي بودم كه يك كامپونت پيدا كردم اسمش يادم نيست
اين كامپونت امكانات جالبي داشت در زمينه IP
لطفا اگر اسمش را پيدا کرديد به من بگويئد من واقعا به آن نياز دارم
h_mohamadi
چهارشنبه 27 شهریور 1392, 15:22 عصر
کسي از دوستان کامپونتت جديد و يا اسم کامپوننتي که دوستمان فرموده اند را نمي داند
من واقعا به اين مورد احتياج دارم؟؟؟؟!!!!
h_mohamadi
دوشنبه 08 مهر 1392, 12:03 عصر
کسي از دوستان به من کمک نمي کند
h_mohamadi
یک شنبه 12 آبان 1392, 13:39 عصر
دوستان خيلي ممنونم آخر خودم پيدا کردم
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.