अपने नेटवर्क एडाप्टर के आईपी पते को बदलने के लिए आप Win32_NetworkAdapterConfiguration WMI कक्षा या AddIPAddress
WinApi विधि का उपयोग कर सकते हैं।
डब्ल्यूएमआई का उपयोग करने वाले इस नमूने को आजमाएं।
{$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.
संक्षिप्त उत्तर: जब तक आप एक ज्ञात वातावरण में सिस्टम स्तर का काम नहीं कर रहे हैं, आमतौर पर आप ** ** नहीं कर सकते हैं। सिस्टम के विशाल बहुमत को एक [डीएचसीपी] (http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol) सर्वर के माध्यम से पता मिलता है और यादृच्छिक रूप से किसी के आईपी पते के साथ मिलकर कनेक्शन खो जाने का कारण बन सकता है। यदि आप उस माहौल को जानते हैं जिसमें आप हैं और आप सुरक्षित रूप से ऐसा कर सकते हैं, तो आपको हमें उसके साथ काम करने के लिए कुछ देना होगा - आपको पता है, उन छोटे विवरणों जैसे ऑपरेटिंग सिस्टम - और इसका संस्करण क्या है। क्या आपके पास रूट/एडमिन एक्सेस है? मूल सामान –
क्या आपका मतलब है कि आपका ऐप देखता है? एक साधारण सशर्त संकलन करना चाहिए। बस एक कोड प्राप्त करने के लिए आईपी प्राप्त करने वाला कोड बदलें। –