delphi Dns ve İp adresleri girme

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
pakv
Üye
Mesajlar: 65
Kayıt: 05 Haz 2013 08:59

delphi Dns ve İp adresleri girme

Mesaj gönderen pakv »

arkadaşlar delphide dns ip girmek için nasıl bir yol izlemem gerek regedit ile yapmaya çalıştıgımda [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces\{05DD1A62-8016-403C-B7B9-FB5B6B3F037C}] anahtarında nterfaces altında bulunan {05DD1A62-8016-403C-B7B9-FB5B6B3F037C}] her makinada farklı oldugu için yapamadım ip dns delphi ile nasıl sisteme girebilirim yardımcı olaiblirmsiniz aşagıdaki linkte örnek verilmiş ama foksiyonu nasıl kullanacagımı bilmiiyorum apiler wmı yapılabilinyormuş yardımcı olabilirmisiniz

viewtopic.php?f=2&t=2990&p=15444&hilit=dns#p15444
pakv
Üye
Mesajlar: 65
Kayıt: 05 Haz 2013 08:59

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen pakv »

bu konuda yardımcı olaiblecek kimse yokmu
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen ALUCARD »

بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
pakv
Üye
Mesajlar: 65
Kayıt: 05 Haz 2013 08:59

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen pakv »

tşk kardeş ama bana ip ,alt ag maskesi, varsayılan ag geçidi ve dns ayarlarınıda degiştirmek istiyorum bunları yönetmek istiyorum editlere bilgileri girecem otomatik kayıt edecek yardımcı olabilirmisin
pakv
Üye
Mesajlar: 65
Kayıt: 05 Haz 2013 08:59

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen pakv »

arkadaşlar bilgisi olan kimse yokmu
Kullanıcı avatarı
veliadiguzel
Üye
Mesajlar: 197
Kayıt: 09 Tem 2003 02:11
Konum: Gebze/Kocaeli
İletişim:

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen veliadiguzel »

DHCP ayarlamak için windows script

Kod: Tümünü seç

Set objShell = WScript.CreateObject("Wscript.Shell")
objShell.Run "netsh interface ip set address name=""Yerel Ağ Bağlantısı"" dhcp"
Set objShell = Nothing
WScript.Quit
Static 2 ip girmek için script.

Kod: Tümünü seç

Dim strIPAddress
Dim strSubnetMask
Dim strGateway
Dim intGatewayMetric
Dim strDns1
Dim strDns2

strIPAddress = "192.168.1.111"
strSubnetMask = "255.255.255.0"
strGateway = "192.168.1.1"
intGatewayMetric = 1
strDns1 = "208.67.222.222"
strDns2 = "195.175.39.40"

Set objShell = WScript.CreateObject("Wscript.Shell")
objShell.Run "netsh interface ip set address name=""Yerel Ağ Bağlantısı"" static " & strIPAddress & " " & strSubnetMask & " " & strGateway & " " & intGatewayMetric, 0, True
objShell.Run "netsh interface ip set dns name=""Yerel Ağ Bağlantısı"" static "& strDns1, 0, True
objShell.Run "netsh interface ip add dns name=""Yerel Ağ Bağlantısı"" addr="& strDns2, 0, True
objShell.Run "netsh interface ip add address name=""Yerel Ağ Bağlantısı"" 176.16.0.3 255.255.0.0 "
Set objShell = Nothing
WScript.Quit
Shellexecute ile bunları çalıştırabilirisin bileşen felan kullanmadan.
Veli ADIGÜZEL
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen SimaWB »

Burada bir örnek bulabilirsiniz...
There's no place like 127.0.0.1
pakv
Üye
Mesajlar: 65
Kayıt: 05 Haz 2013 08:59

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen pakv »

kardeş bunlar visual basic kodları delphi için geçerli degil
Kullanıcı avatarı
veliadiguzel
Üye
Mesajlar: 197
Kayıt: 09 Tem 2003 02:11
Konum: Gebze/Kocaeli
İletişim:

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen veliadiguzel »

Aslında windows script bunlar direk shellexecute ile bir dosyaya kaydedip kullana bilirsiniz.
Veli ADIGÜZEL
pakv
Üye
Mesajlar: 65
Kayıt: 05 Haz 2013 08:59

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen pakv »

tammada nasıl kullanıldıgı hakkında bilgi verebilirmsini mesala editlere dns ve ipleri yazdıgımda direk ethernet kartının ağ bağlantılarına ekleyecek
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen mrmarman »

- @SimaWeb'in verdiği WMI API'yi denedin mi ?

- Ayrıca script ile yapacaksan da "Yerel Ağ Bağlantısı" yazan yere senin GUID'ler değişiyor ondan erişemiyorum dediğin yerin altındaki ismi yazman gerek. "Yerel Ağ Bağlantısı 1" veya "Yerel Ağ Bağlantısı 2" olsa nasıl bu scripti dizginleyeceksin ?

- @SimaWeb'inkini yapamıyorsan o zaman Registry'e dönüp GUID'lerin listesini alıp, onların altında sıra ile anahtarları açıp arayacak bir çözüm üreteceksin.
Resim
Resim ....Resim
pakv
Üye
Mesajlar: 65
Kayıt: 05 Haz 2013 08:59

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen pakv »

regedit ile denedim her bilgisayarda farklı oldugu için ethernet kartı olmuyor diger yöntemleri deneycegim
pakv
Üye
Mesajlar: 65
Kayıt: 05 Haz 2013 08:59

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen pakv »

Etherneti okumaya çalıştıgımda combox ta göremiyorum oNetAdapters ethernet bilgilerinin yazdıgı yer degilmi ben bu kısımdan okumam gerekmiyormu birden fazla ethernet varsa hangisine istiyorsa ona atasın ip ve dnsleri burdaki hatam nedir


procedure TForm10.FormCreate(Sender: TObject);
var
oNetAdapters,oNetAdapter,oWMIService : OleVariant;
begin
ComboBox1.Items.add(oNetAdapter);

end;

end.
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen unicorn64 »

pakv yazdı:Etherneti okumaya çalıştıgımda combox ta göremiyorum oNetAdapters ethernet bilgilerinin yazdıgı yer degilmi ben bu kısımdan okumam gerekmiyormu birden fazla ethernet varsa hangisine istiyorsa ona atasın ip ve dnsleri burdaki hatam nedir


procedure TForm10.FormCreate(Sender: TObject);
var
oNetAdapters,oNetAdapter,oWMIService : OleVariant;
begin
ComboBox1.Items.add(oNetAdapter);

end;

end.
daha önceki mesajınızda da belirtmiştim, wmi işini bir kenara bırakıp önce delphinin temellerini öğrenseniz iyi olur diye.

sizin yazdığınız kodda oNetAdapters sadece bir değişken ve bu değişkeni değer ataması dahi yapmadan kullanmışsınız

Kod: Tümünü seç

procedure TForm10.FormCreate(Sender: TObject);     //   =>  Form nesnesi create edildiğinde çalışan prosedür
var                                                   //   =>  Prosedür içinde kullanılacak değişkenlerin tanımlandığı blok
oNetAdapters,oNetAdapter,oWMIService : OleVariant;     //   =>  bu prosedür içinde geçerli olacak değişkenler 
begin                                                   //   => Prosedür başlangıcı   
ComboBox1.Items.add(oNetAdapter);                //   => tanımlanmış değişkenin, değer ataması dahi yapılmadan kullanılması   
end;                                           //   => Prosedür bitişiı   
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
pakv
Üye
Mesajlar: 65
Kayıt: 05 Haz 2013 08:59

Re: delphi Dns ve İp adresleri girme

Mesaj gönderen pakv »

unicorn64 delphi nin temlelerini biliyorum ide sini biliyorum eksiklerim olabilir regeditle bir çok sisteme müdahele yapan programlar tasarladım eger temelleri bilmesem bunları yapamazdım wmi karışık SimaWeb wmi küçük örnek yapmış ethernete yazıyor ama orda etherneti bu bölümmü okuyor diye bulmaya çalıştım wmi ilk defa kullanmaya çalışıyorum kodlar aşagıda amaç etherneti okumaya çalışıyom regedit ile okudum etherneti combobox ta gösteriyor ama regedit ile okudugumu wmi yazabilirmiyim onun için üzerinde çalışıyorum

function SetIpConfig(const AIpAddress : string;
const AGateWay : string = '';
const ASubnetMask : string = '') : integer;
var Retvar : integer;
oBindObj : IDispatch;
oNetAdapters,oNetAdapter,
oIpAddress,oGateWay,
oWMIService,oSubnetMask : OleVariant;
i,iValue : longword;
oEnum : IEnumvariant;
oCtx : IBindCtx;
oMk : IMoniker;
sFileObj : widestring;
begin
Retvar := 0;
sFileObj := 'winmgmts:\\.\root\cimv2';

// Create OLE [IN} Parameters
oIpAddress := VarArrayCreate([1,1],varOleStr);
oIpAddress[1] := AIpAddress;
oGateWay := VarArrayCreate([1,1],varOleStr);
oGateWay[1] := AGateWay;
oSubnetMask := VarArrayCreate([1,1],varOleStr);
if ASubnetMask = '' then
oSubnetMask[1] := '255.255.255.0'
else
oSubnetMask[1] := ASubnetMask;

// Connect to WMI - Emulate API GetObject()
OleCheck(CreateBindCtx(0,oCtx));
OleCheck(MkParseDisplayNameEx(oCtx,PWideChar(sFileObj),i,oMk));
OleCheck(oMk.BindToObject(oCtx,nil,IUnknown,oBindObj));
oWMIService := oBindObj;

oNetAdapters := oWMIService.ExecQuery('Select * from ' +
'Win32_NetworkAdapterConfiguration ' +
'where IPEnabled=TRUE');
oEnum := IUnknown(oNetAdapters._NewEnum) as IEnumVariant;

while oEnum.Next(1,oNetAdapter,iValue) = 0 do begin
try
// Set by DHCP ? (Gateway and Subnet ignored)
if (AIpAddress = '') or SameText(AIpAddress,'DHCP') then
Retvar := oNetAdapter.EnableDHCP
// Set via STATIC ?
else begin
Retvar := oNetAdapter.EnableStatic(oIpAddress,oSubnetMask);
// Change Gateway ?
if (Retvar = 0) and (AGateWay <> '') then
Retvar := oNetAdapter.SetGateways(oGateway);

// *** This is where we need some sort of ***
// *** Network Mapped Resource Refresh ***
end;
except
Retvar := -1;
end;

oNetAdapter := Unassigned;
end;

oGateWay := Unassigned;
oSubnetMask := Unassigned;
oIpAddress := Unassigned;
oNetAdapters := Unassigned;
oWMIService := Unassigned;
Result := Retvar;
end;

function SetDnsServers(const APrimaryDNS : string;
const AAlternateDNS : string = '') : integer;
var Retvar : integer;
oBindObj : IDispatch;
oNetAdapters,oNetAdapter,
oDnsAddr,oWMIService : OleVariant;
i,iValue,iSize : longword;
oEnum : IEnumvariant;
oCtx : IBindCtx;
oMk : IMoniker;
sFileObj : widestring;
begin
Retvar := 0;
sFileObj := 'winmgmts:\\.\root\cimv2';
iSize := 0;
if APrimaryDNS <> '' then inc(iSize);
if AAlternateDNS <> '' then inc(iSize);

// Create OLE [IN} Parameters
if iSize > 0 then begin
oDnsAddr := VarArrayCreate([1,iSize],varOleStr);
oDnsAddr[1] := APrimaryDNS;
if iSize > 1 then oDnsAddr[2] := AAlternateDNS;
end;

// Connect to WMI - Emulate API GetObject()
OleCheck(CreateBindCtx(0,oCtx));
OleCheck(MkParseDisplayNameEx(oCtx,PWideChar(sFileObj),i,oMk));
OleCheck(oMk.BindToObject(oCtx,nil,IUnknown,oBindObj));
oWMIService := oBindObj;

oNetAdapters := oWMIService.ExecQuery('Select * from ' +
'Win32_NetworkAdapterConfiguration ' +
'where IPEnabled=TRUE');
oEnum := IUnknown(oNetAdapters._NewEnum) as IEnumVariant;

while oEnum.Next(1,oNetAdapter,iValue) = 0 do begin
try
if iSize > 0 then
Retvar := oNetAdapter.SetDNSServerSearchOrder(oDnsAddr)
else
Retvar := oNetAdapter.SetDNSServerSearchOrder();
except
Retvar := -1;
end;

oNetAdapter := Unassigned;
end;

oDnsAddr := Unassigned;
oNetAdapters := Unassigned;
oWMIService := Unassigned;
Result := Retvar;
end;
Cevapla