PDA

View Full Version : آموزش: بدست آموردن آی پی های فعال یک کافی نت



sssahari
یک شنبه 17 دی 1391, 19:02 عصر
1کی یعنی اصلا نمیتونه اینو جواب بده؟!!!!!!!!!
فرض کنید یک سری کامپیوتر داریم مثلا کافی نت خب بعد میخواهیم یه دستور بنویسیم که نشون بده کدوم آی پی به شبکه متصله کدوم نه

SHD.NET
یک شنبه 17 دی 1391, 21:18 عصر
توی کلاینت ها باید دستوری رو بنویسی که هنگام لود شدن برنامه مورد نظرتون ، آی پی خودشون رو به سرور ازسال کنند . از سوکت استفاده می کنی ؟؟

sssahari
یک شنبه 01 بهمن 1391, 19:35 عصر
نه از سوکت استفاده نمیکنم

فرید نجفلو
یک شنبه 01 بهمن 1391, 20:35 عصر
اگه آی پی ها ثابت هستن:

Dim Ping As New Net.NetworkInformation.Ping
Dim reply = Ping.Send("127.0.0.1")
If reply.Status = Net.NetworkInformation.IPStatus.Success Then
'آی پی فعال است
End If


اگه نمی دونی:
http://www.codeproject.com/Articles/16113/Retreiving-a-list-of-network-computer-names-using

h_a_m_i_d
دوشنبه 02 بهمن 1391, 14:19 عصر
با سلام دوست عزیز
لطفا در مورد نحوه نوشتن خودتون یک توضیح بدین با چه روشی نوشتین
البته در اصل این موضوع این مطلب قرار داره که برنامه های کلاینت باید فعالیت خود را به سرور اعلام کنند
اگر از sql استفاده میکنید باید یک جدول رو تخصیص بدید به اینکار که هر کامپیوتر که فعال شد یک ایتم اضافه کنه و وقتی هم به هر دلیلی برنامه بسته شد اون ایتم رو حذف کنه
اگر از یک فایل استفاده میکنید میتونید که چند تا شماره برای اون بنویسید
و..........
موفق باشید

pooya1072
دوشنبه 02 بهمن 1391, 20:39 عصر
سلام
با این تابع می تونی کل آی پی های موجود توی شبکه رو توی یه آرایه قرار بدی . با تابع دوم هم می تونی فعال یا غیر فعال بودن هر کدوم رو چک کنی :


PublicFunction FindIP() AsString()
Dim IPs() AsString = NewString() {}
Dim c AsInteger = 0
Dim ipRange AsString = Left(GetMyIP().ToString, GetMyIP().ToString.Length - 1)
Dim LocalHostName AsString
LocalHostName = Dns.GetHostName()
For i AsInteger = 1 To 254
Dim ipHostEntry AsIPHostEntry = Dns.GetHostEntry(ipRange + i.ToString)
IfNot ipHostEntry.HostName = ipHostEntry.AddressList.GetValue(0).ToString Then
ReDimPreserve IPs(c)
IPs(c) = ipHostEntry.AddressList.GetValue(0).ToString
c += 1
EndIf
Next i
Return IPs
EndFunction

تابع FindIP مقدار ورودی برای تابع GetAvailableIP است :



PublicFunction GetAvailablePlayersIP() AsString()
Dim ips() AsString
ips = FindIP()
Dim AvailableIP(0) AsString
Dim c AsInteger = 0
ForEach ip AsStringIn ips
Using TcpClient AsNewTcpClient
Dim ar AsIAsyncResult = TcpClient.BeginConnect(ip, Port_Number, Nothing, Nothing)
Dim wh As System.Threading.WaitHandle = ar.AsyncWaitHandle
Try
IfNot ar.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(5) , False) Then
TcpClient.Close()
ThrowNewTimeoutException
Else
TcpClient.EndConnect(ar)
TcpClient.Close()
ReDimPreserve AvailableIP(c)
AvailableIP(c) = ip
c += 1
EndIf
Catch ex AsException
Finally
wh.Close()
EndTry
EndUsing
Next
Return AvailableIP
EndFunction

systam
دوشنبه 02 بهمن 1391, 21:31 عصر
سلام
من خودم کافی نت دارم برنامه رو از سایت http://www.codeproject.com گرفتن
تستش کردم جواب داد عالیه
دمشون گرم چی سایت توپیه
هرچی میخوای پیدا میشه



یا علی

vaezhasan
جمعه 13 بهمن 1391, 00:21 صبح
توي ويندوز 8 كار نمي كنه.

Reza,M
جمعه 13 بهمن 1391, 16:09 عصر
این کد برای workgroup است کسی میودنه این کار برای دامین چطوره؟

sssahari
جمعه 13 بهمن 1391, 22:21 عصر
اگه آی پی ها ثابت هستن:

Dim Ping As New Net.NetworkInformation.Ping
Dim reply = Ping.Send("127.0.0.1")
If reply.Status = Net.NetworkInformation.IPStatus.Success Then
'آی پی فعال است
End If


اگه نمی دونی:
http://www.codeproject.com/Articles/16113/Retreiving-a-list-of-network-computer-names-using


اگر آی پی ها ثابت نبودن؟