ورود

View Full Version : سوال: يافتن نام كامپيوتر كلاينت



amirb55
دوشنبه 25 خرداد 1388, 13:10 عصر
سلام
من مي خوام كامپيوترهاي كلاينت كه برنامه ASP‌رو از روي سرور اجرا مي كنن،‌نامشون در بانك ذخيره بشه .
يعني همونطور كه مي شه IP رو از كلاينت گرفت، computer name‌رو هم بشه گرفت.
حتما مي دونيد كه IP ‌رو با دستور زير مي شه گرفت:
response.write Request.ServerVariables("REMOTE_ADDR")
در مورد نام كامپيوتر هم مي تونم نام سرور رو با remote_host‌ يا CreateObject("WinNTSystemInfo") پيدا كنم ولي نام كلاينت رو بهم نمي ده. يه كد هست كه مي گه :
SET objShell=CreateObject("Wscript.Shell")
DIM objExec, strResult
SET objExec = objShell.Exec("hostname")
strResult = objExec.StdOut.ReadAll
WScript.Echo strResult
اما خطا مي ده كه :
Microsoft VBScript runtime (0x800A01A8)
Object required: ''
به نظر اساتيد من چكار كنم؟

kashaneh
دوشنبه 25 خرداد 1388, 20:17 عصر
دوست عزیز تکه کد زیر به احتمال زیاد پاسخ سوال شما باشد... در صورتی که جواب گرفتی حتما اطلاع بده...



<%
Set pc = CreateObject("Wscript.Network")
response.write pc.ComputerName
Set pc = nothing
%>


موفق باشی

amirb55
سه شنبه 26 خرداد 1388, 10:35 صبح
سلام
مرسي از توجهتون . كد شما رو امتحان كردم ولي كد شما تنها اسم كامپيوتري كه كد روش اجرا مي شه رو مي ده منظورم خود سرور هست .
من راه حل زير رو بكار بردم و خوشبختانه جواب داد ،‌اول aspDNS رو نصب كردم كه فايلش در آدرس زير قرار داره :
http://www.box.net/shared/73jye36r7c
بعد كد زير رو داخل صفحه گذاشتم :
<%
Dim DNS
Dim A

Set DNS = Server.CreateObject("ASPDNS.DNSLookup")
A = DNS.GetIPFromName("server")
Response.Write "server = " & A & "<BR>"
A = DNS.GetNameFromIP("192.168.0.78")
Response.Write "192.168.0.78 = " & A
Set DNS = Nothing%>


كه اين كد نام كامپيوتري رو مي ده كه IP اون 192.168.0.78 هست و اگه به جاي 192.168.0.78 كد Request.ServerVariables("REMOTE_ADDR")
رو اضافه كنيم ديگه نام كامپيوتري كه به برنامه كانكت مي شه و كد رو اجرا مي كنه رو بر مي گردونه.
چيز جالبي كه وجود داره اينه كه از روي نام سرور (Server) مي ره IP اش رو مي ياره و از روي IP كلاينت مي ره نامش رو مياره و در واقع داره به زيبايي 2 كار رو بهمون نشون مي ده.

با آرزوي موفقيت.

هواشناس
سه شنبه 26 خرداد 1388, 10:39 صبح
بنام خدا
با سلام و تشکر
من کد فوق رو امتحان کردم و جواب داد ولی وقتی کدها رو روی یه سرور ریختم و خواستم بصورت پورتال داخلی داخل اداره استفاده کنم موقع اجرای http://server/ نام سیستم سرور رو نشون میده نه سیستم کلاینت رو
اما کد بعدی که amirb55 (http://barnamenevis.org/forum/member.php?u=9059) فرستاده بود کار کرد حالا روی هاست چطور، اونجا هم کار می کنه؟
راستی یه سوال، برای یه پرتال داخلی که روی سرور ریخته شده راهی چطور میشه اتصال به اینترنت رو برای کلاینت کنترل کرد و در صورت وجود اتصال مثلا صفحاتی که نیاز به اینترنت دارند رو نشون داد والا پیام عدم اتصال داد؟

amirb55
سه شنبه 02 تیر 1388, 12:34 عصر
سلام
كدي كه من دادم روي شبكه كار مي كنه فقط يه مساله اي هست و اون هم اينه كه اگه كاربر ip روش رو hide‌ كرده باشه نمي تونيم نام كامپيوترش رو پيدا كنيم!