PDA

View Full Version : کنترل کامپیوترهای متصل به شبکه



murallat
چهارشنبه 21 اسفند 1381, 09:45 صبح
من سرور دارم و یک شبکه محلی متصل به اینترنت . چگونه می توانم از طریق داشتن ای پی کلاینت ها روشن یا خاموش بودن آنها و یا به اینترنت و شبکه محلی وصل بودن آنها را چک کنم ؟ با تشکر

Gladiator
چهارشنبه 21 اسفند 1381, 11:20 صبح
ای پی ها رو پینگ کن !
خیلی ساده .

Vahid_Nasiri
چهارشنبه 21 اسفند 1381, 15:22 عصر
در تکمیل فرمایش دوستمان برنامه زیر هم وجود دارد که اینکار را برای شما راحت می کند . برنامه نقلی و بدرد بخوری است! :lol: :wink:

http://www.angryziber.com/ipscan

RezaBS
شنبه 02 فروردین 1382, 04:09 صبح
سلام
داشتم موضوعات را در کامپیوتر مرور میکردم، دیدم به این سوال جواب داده شده ولی جوابها مربوط به دلفی نمیشوند.
باز گفتم در آینده یکی دنبال این موضوع میگرده یک جواب حسابی داشته باشه بد نیست!
قدیمها در دلفی5 برنامه زیر همانند ping کار میکرد (حقیقتش از یک جایی برداشته بودمش)، اینجا از توابع API (یا به قول آقای اینپرایز محصور کننده...) استفاده شده و در نتیجه با تغییراتی در همه جا کاربرد داره.
استفاده کنید و خوش باشید:


unit FindComp;

interface

uses
Windows, Classes;

function FindComputers: DWORD;

var
Computers: TStringList;

implementation

uses
SysUtils;

const
MaxEntries = 250;

function FindComputers: DWORD;

var
EnumWorkGroupHandle,
EnumComputerHandle : THandle;
EnumError : DWORD;
Network : TNetResource;
WorkGroupEntries,
ComputerEntries : DWORD;
EnumWorkGroupBuffer,
EnumComputerBuffer : array[1..MaxEntries] of
TNetResource;
EnumBufferLength : DWORD;
I, J : DWORD;

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;
EnumBufferLength := SizeOf(EnumWorkGroupBuffer);
EnumError := WNetEnumResource(EnumWorkGroupHandle,
WorkGroupEntries,
@EnumWorkGroupBuffer,
EnumBufferLength);

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;
EnumBufferLength:= SizeOf(EnumComputerBuffer);
EnumError:=WNetEnumResource(EnumComputerHandle,
ComputerEntries,
@EnumComputerBuffer,
EnumBufferLength);
if EnumError = NO_ERROR then
for J := 1 to ComputerEntries do
Computers.Add(Copy(EnumComputerBuffer[J].
lpRemoteName, 3,
Length(EnumComputerBuffer[J].
lpRemoteName) - 2));
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.


در صورت برخورد با هر گونه اشکال خواهشمند است سریع گزارش دهید تا رفع گردد یا گردند!

موفق باشید ...

Inprise
شنبه 02 فروردین 1382, 16:52 عصر
دوست عزیز

محصور کننده معادل عبارت Wrapper است .

کاری که شما الان کردی درست کار کردن با API است . اگر کامپوننتی طراحی کنی که این کار رو بدون درگیری با جزئیات برای مشتری انجام بده و کاربر فقط با چند تا اینترفیس ساده سر و کار داشته باشه اونوقت یه محصور کننده برای چند API نوشتی . البته محصور کننده عموما برای اشیا با مولفه های پیچیده بکار میره . مثل محصور کننده های استانداردی که محیط دلفی برای برقراری ارتباط با تایپ لایبراری ها تولید میکنه .
موفق و سلامت باشی

RezaBS
شنبه 02 فروردین 1382, 23:24 عصر
سلام

من که گفتم اینها با API هستند که البته واضح هم هست دیگه ساخت به قول شما محصور... به عهده خودشون!
لقمه را من نجوم بهتر نیست؟
به هر حال اگر فکر میکنید اونجوری بهتره از نظر من مشکلی نیست میتونم اینجا کپی کنم یا خودتون زحمتشو بکشید.
با تشکر به خاطر توضیح تکمیلی دوست :wink: گرامی آقای اینپرایز ...

RezaBS
یک شنبه 03 فروردین 1382, 03:47 صبح
با توجه به بحث فوق برای اینکه مشکلی باقی نمونه میتونید به بحث زیر مراجعه کنید:
http://www.barnamenevis.org/forum/viewtopic.php?t=210&start=0&postdays=0&postorder=asc&highlight=

امید است آقای اینپرایز کوتاهی اینجانب را به بزرگواری خودشان ببخشایند، اما این کلمه محصورکننده یک جورهایی قابل هضم نیست! :wink:

به امید موفقیت شما ...

Inprise
یک شنبه 03 فروردین 1382, 17:09 عصر
آدامس P.K مصرف (!) کن . زود هضم میشه !!!! :twisted:

:mrgreen:

RezaBS
سه شنبه 05 فروردین 1382, 00:40 صبح
با سلام و عرض ادب!!
آقای اینپرایز، اگر خاطرتون باشه خودتون از دوستان خواسته بودید در این سایت بحث فلسفی نشه!!! پس حالا چرا خودتون...؟؟
از لحاظ علمی! استفاده از آدامس جهت هضم هر نوع مهضمی مثل استفاده از توابع استاندارد SDK جهت ساخت یک کلید معمولی در محیط دلفی هست!
من به شما استفاده از نوشیدنیهای مجاز را پیشنهاد میکنم!

اما از شوخی گذشته، استفاده از کلمه "محصور کننده" به جای Wrapper در واقع جایگزینی یک کلمه غیر فارسی و غیر علمی به جای یک کلمه غیر فارسی و شاید بهتره به این هم بگیم غیر علمی دیگه هست.
اگر اینجور نگاه کنیم اونوقت کلمه "پیچاننده!" یا "پیچ دهنده!" یا ... هم مجازه! بهتر نیست قبول کنیم گاهی استفاده از کلمه اصلی و البته شاید بی معنی ویا نوشتن مفهوم کلمه بهتر از استفاده از ترجمه های نامفهومه؟
دو سال پیش تو مجله کامپیوتر ترجمه ای خوندم که در اون کلمات معرکه فراوانی یافت میشد، یکیش "نمایش کلاه خودی" بود!!!!

موفق باشید ...

Inprise
سه شنبه 05 فروردین 1382, 12:31 عصر
..موافقم .... :roll: