Ağdaki biligisarların İP numaralarını çekme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Ağdaki biligisarların İP numaralarını çekme
Arkadaşlar iyi akşamlar arkadaşlar herkese kolay gelsin.
Ben bir şey sorcam sizlere,, büyük bir ağ düşünün (en az 140 bilgisayar arasında) ve bu ağ bir router la uydudan başka bir yere bağlı ben kendi ağımda yani 140 bilgisayarın birbirine bağlı olduğu ağdaki bu bütün bilgisayarların IP numaralarını ve adlarını çekebilirmiyim acaba böyle bir şey yapma şansım var galiba ufak birşey bulmuştum ama tabi bulmakla kaldı çalışmadı falan olmadı yapamadık .Şimdiden teşekkür ederim herkese kolay gelsin cümleten iyi geceler.
Ben bir şey sorcam sizlere,, büyük bir ağ düşünün (en az 140 bilgisayar arasında) ve bu ağ bir router la uydudan başka bir yere bağlı ben kendi ağımda yani 140 bilgisayarın birbirine bağlı olduğu ağdaki bu bütün bilgisayarların IP numaralarını ve adlarını çekebilirmiyim acaba böyle bir şey yapma şansım var galiba ufak birşey bulmuştum ama tabi bulmakla kaldı çalışmadı falan olmadı yapamadık .Şimdiden teşekkür ederim herkese kolay gelsin cümleten iyi geceler.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Kod: Tümünü seç
unit FindComp;
interface
uses
Windows, Classes;
function FindComputers: DWORD;
function HostToIPAddr(Name: string; var Ip: string): Boolean;
var
Computers: TStringList;
implementation
uses
SysUtils, winsock;
const
MaxEntries = 500;
function HostToIPAddr(Name: string; var Ip: string): Boolean;
var
wsdata : TWSAData;
hostName : array [0..255] of char;
hostEnt : PHostEnt;
addr : PChar;
begin
WSAStartup ($0101, wsdata);
try
gethostname (hostName, sizeof (hostName));
StrPCopy(hostName, Name);
hostEnt := gethostbyname (hostName);
if Assigned (hostEnt) then
if Assigned (hostEnt^.h_addr_list) then begin
addr := hostEnt^.h_addr_list^;
if Assigned (addr) then begin
IP := Format ('%d.%d.%d.%d', [byte (addr [0]),
byte (addr [1]), byte (addr [2]), byte (addr [3])]);
Result := True;
end
else
Result := False;
end
else
Result := False
else begin
Result := False;
end;
finally
WSACleanup;
end
end;
function FindComputers: DWORD;
var
EnumbilgHandle, EnumWorkGroupHandle, EnumComputerHandle: THandle;
EnumError: DWORD;
Network: TNetResource;
bilgEntries, WorkGroupEntries, ComputerEntries: DWORD;
EnumbilgBuffer, EnumWorkGroupBuffer, EnumComputerBuffer: array[1..MaxEntries] of TNetResource;
bilgEnumbufferlength, workEnumbufferlength, compEnumBufferLength: DWORD;
k,I, J: DWORD;
st : string;
begin
Computers.Clear;
FillChar(Network, SizeOf(Network), 0);
with Network do
begin
dwScope := RESOURCE_GLOBALNET;
dwType := RESOURCETYPE_ANY;
dwUsage := RESOURCEUSAGE_CONTAINER;
end;
EnumError := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @Network, EnumWorkGroupHandle);
if EnumError = NO_ERROR then
begin
WorkGroupEntries := MaxEntries;
workEnumBufferLength := SizeOf(EnumWorkGroupBuffer);
EnumError := WNetEnumResource(EnumWorkGroupHandle, WorkGroupEntries, @EnumWorkGroupBuffer, workEnumBufferLength);
if EnumError = NO_ERROR then
begin
for I := 1 to WorkGroupEntries do
begin
EnumError := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @EnumWorkGroupBuffer[I], EnumComputerHandle);
if EnumError = NO_ERROR then
begin
ComputerEntries := MaxEntries;
compEnumBufferLength := SizeOf(EnumComputerBuffer);
EnumError := WNetEnumResource(EnumComputerHandle, ComputerEntries, @EnumComputerBuffer, compEnumBufferLength);
if EnumError = NO_ERROR then
begin
for j := 1 to computerEntries do
begin
Computers.Add(EnumcomputerBuffer[j].lpRemoteName);
EnumError := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @EnumcomputerBuffer[J], EnumbilgHandle);
if EnumError = NO_ERROR then
begin
bilgEntries := MaxEntries;
bilgEnumBufferLength := SizeOf(EnumbilgBuffer);
EnumError := WNetEnumResource(EnumbilgHandle, bilgEntries, @EnumbilgBuffer, bilgEnumBufferLength);
if EnumError = NO_ERROR then
for k := 1 to bilgEntries do
begin
st := EnumbilgBuffer[k].lpRemoteName;
delete(st,1,2);
Computers.Add(' '+st);
end;
WNetCloseEnum(EnumbilgHandle);
end;
end;
end;
WNetCloseEnum(EnumComputerHandle);
end;
end;
end;
WNetCloseEnum(EnumWorkGroupHandle);
end;
if EnumError = ERROR_NO_MORE_ITEMS then
EnumError := NO_ERROR;
Result := EnumError;
end;
initialization
Computers := TStringList.Create;
finalization
Computers.Free;
end.
hocam merhaba kodu kullanamadım hocam ,şöyle çözemedik daha doğrusu nerde hangi bileşeni kullanacağımı kestiremedim o yüzden tam verim alamdım ,sizin fikriniz varsa yada bir ekran görüntüsü görebilsek iyi olcak bizim için,Teşekkür ederim kolay gelsin herkese.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Yukarıdaki kodu FindComp.pas olarak kayıt edeceksin. Sonra projende aşağıdaki kodu uygulayabilirsin.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var k : integer;
begin
Memo1.Lines.Clear;
FindComputers;
for k := 0 to findcomp.computers.count-1 do
begin
If findcomp.computers[k] <> '' then
memo1.lines.add(findcomp.computers[k]);
end;
end;
Ek olarak
function'u ilede ip adreslerini elde edersin.
Kod: Tümünü seç
function HostToIPAddr(Name: string; var Ip: string): Boolean;
function'u ilede ip adreslerini elde edersin.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Hocam delphi7 ve işletim sistemi winxp...
Ağ yapısı ise bütün bilgisayarlar swichlerde toplanıyor ve ordanda başka bir yere uydu router vasıtası ile bağlantı sağlanıyor.bu şekilde bir yapı.
Ağ yapısı ise bütün bilgisayarlar swichlerde toplanıyor ve ordanda başka bir yere uydu router vasıtası ile bağlantı sağlanıyor.bu şekilde bir yapı.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************