امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
نحوه بدست آوردن Local IP ؟؟؟
نویسنده پیام
1120 آفلاین
در حال پیشرفت
***

ارسال‌ها: 313
موضوع‌ها: 49
تاریخ عضویت: دى ۱۳۸۷

تشکرها : 404
( 381 تشکر در 161 ارسال )
ارسال: #1
نحوه بدست آوردن Local IP ؟؟؟
سلام دوستان و اساتید عزیز .
به یک مشکل برخوردم که کلی از کارم عقب افتادم .
مشکل اینجاست که وقتی به اینترنت وصل میشم Winsock.localIP به جای آی پی Lan , آی پی داخلی اینترنت رو بر میگردونه !
با استفاده از کد زیر تونستم تمام آیپی های تعریف شده سیستم رو بدست بیارم ، اما مشکل اینجاست که برنامه چطور باید بفهمه کدوم آی پی مربوط به شبکه Lan هست ؟

کد:
Option Explicit

Private Const MAX_IP = 10

Private Type IPINFO
    dwAddr As Long   ' IP address
    dwIndex As Long '  interface index
    dwMask As Long ' subnet mask
    dwBCastAddr As Long ' broadcast address
    dwReasmSize  As Long ' assembly size
    unused1 As Integer ' not used
    unused2 As Integer ' not used
End Type

Private Type MIB_IPADDRTABLE
    dEntrys As Long   'number of entries in the table
    mIPInfo(MAX_IP) As IPINFO  'array of IP address entries
End Type

Private Type IP_Array
    mBuffer As MIB_IPADDRTABLE
    BufferLen As Long
End Type

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Declare Function GetIpAddrTable Lib "IPHlpApi" (pIPAdrTable As Byte, pdwSize As Long, ByVal Sort As Long) As Long



Private Function ConvertAddressToString(longAddr As Long) As String
  Dim myByte(3) As Byte
  Dim Cnt As Long
    
  CopyMemory myByte(0), longAddr, 4
  For Cnt = 0 To 3
     ConvertAddressToString = ConvertAddressToString + CStr(myByte(Cnt)) + "."
  Next Cnt
  ConvertAddressToString = Left$(ConvertAddressToString, Len(ConvertAddressToString) - 1)
End Function


Private Sub Form_Load()
   Dim Ret As Long, Tel As Long
  Dim bBytes() As Byte
  Dim Listing As MIB_IPADDRTABLE
  
  On Error GoTo END1
  
  GetIpAddrTable ByVal 0&, Ret, True
  
  If Ret <= 0 Then Exit Sub
  
  ReDim bBytes(0 To Ret - 1) As Byte
  
  GetIpAddrTable bBytes(0), Ret, False
  CopyMemory Listing.dEntrys, bBytes(0), 4

  For Tel = 0 To Listing.dEntrys - 1
     CopyMemory Listing.mIPInfo(Tel), bBytes(4 + (Tel * Len(Listing.mIPInfo(0)))), Len(Listing.mIPInfo(Tel))
    
    If ConvertAddressToString(Listing.mIPInfo(Tel).dwAddr) <> "0.0.0.0" _
    And Trim$(ConvertAddressToString(Listing.mIPInfo(Tel).dwAddr)) <> "" Then
     Form1.Text1 = Form1.Text1 & ConvertAddressToString(Listing.mIPInfo(Tel).dwAddr) & vbCrLf
    End If
  
  Next
Exit Sub
END1:
MsgBox "ERROR"
End Sub

لطفا بنده رو راهنمایی کنید .


(آخرین ویرایش در این ارسال: ۱۵-بهمن-۱۳۸۹, ۰۴:۴۷:۴۲، توسط 1120.)
۱۵-بهمن-۱۳۸۹, ۰۴:۴۶:۲۰
ارسال‌ها
پاسخ
تشکر شده توسط : mahdi321
behzadX آفلاین
كاربر دو ستاره
**

ارسال‌ها: 73
موضوع‌ها: 11
تاریخ عضویت: دى ۱۳۸۵

تشکرها : 83
( 84 تشکر در 47 ارسال )
ارسال: #2
RE: نحوه بدست آوردن Local IP ؟؟؟
با دستور Ipconfig از طریق CMD می تونی تمام آی پی ها فعال در سیستم خودتو ببینی
با جستجو در نام آی پی مورد نظرتو از لیست آی پی ها خارج و در برنامه خودت ازش
استفاده کن.
با این سویچ اجرا کن
ipconfig/all
می بینی که نام سخت افزار به همراه مک آدرس آنها نمایان میشه
معمولا کارت های شبکه نام و مک آدرس دارن ولی کانکشن های مجازی
مانند Wap Mini Port یا همان (PPPOE) این خاصیت رو ندارن
می تونی از روی تشخیص نام کارت شبکه آی پی اونو جدا کنی
به سویچ های دیگه این فرمان سری بزن حتما جوابو پیدا می کنی.

هم اکنون نیازمند یاری سبزتان هستیم
گروه دوبلاژ بازی ایران ویج
از کابرانی که علاقه به دوبلاژ بازی دارند دعوت به همکاری می نماید.
با نظرات خود ما را در این امر یاری نمایید.
026
(آخرین ویرایش در این ارسال: ۱۵-بهمن-۱۳۸۹, ۱۱:۱۳:۱۵، توسط behzadX.)
۱۵-بهمن-۱۳۸۹, ۱۱:۰۱:۵۶
ارسال‌ها
پاسخ
تشکر شده توسط : 1120, mahdi321
rbaghreih آفلاین
تازه وارد

ارسال‌ها: 4
موضوع‌ها: 0
تاریخ عضویت: آذر ۱۳۹۰

تشکرها : 0
( 7 تشکر در 4 ارسال )
ارسال: #3
RE: نحوه بدست آوردن Local IP ؟؟؟
سلام
کمپوننت winsock و یه تکست باکس به فرم برنامه را اضافه کنید بعد سورس زیر را استفاده کنید .
Text1 = Winsock1.LocalIP
۱۱-آذر-۱۳۹۰, ۱۳:۵۰:۰۳
ارسال‌ها
پاسخ
تشکر شده توسط : mahdi321
HamedFaa آفلاین
كاربر دو ستاره
**

ارسال‌ها: 117
موضوع‌ها: 16
تاریخ عضویت: اسفند ۱۳۸۹

تشکرها : 15
( 61 تشکر در 47 ارسال )
ارسال: #4
RE: نحوه بدست آوردن Local IP ؟؟؟
(۱۱-آذر-۱۳۹۰, ۱۳:۵۰:۰۳)rbaghreih نوشته است: سلام
کمپوننت winsock و یه تکست باکس به فرم برنامه را اضافه کنید بعد سورس زیر را استفاده کنید .
Text1 = Winsock1.LocalIP

همین الان گفت localip آی پی wan رو برمیگردونه..... آی پی lan رو میخواد
۱۲-آذر-۱۳۹۰, ۰۵:۵۴:۴۶
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : mahdi321


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  بدست آوردن عین قسمت صحیح و اعشار mr91090 3 3,559 ۱۲-دى-۱۳۹۴, ۱۴:۵۲:۴۲
آخرین ارسال: sharin
  [سوال] به دست آوردن ماکسیمم یا مینیمم مقدار یک رنج اکسل eppagh 3 4,164 ۰۹-دى-۱۳۹۳, ۱۵:۳۲:۳۷
آخرین ارسال: eppagh
Question بدست اوردن IP ISP Ghoghnus 9 13,453 ۰۴-فروردین-۱۳۹۳, ۱۳:۳۲:۲۶
آخرین ارسال: mahdi321
  سورس کد بدست اوردن ادد لیست یاهو storng_function 15 17,977 ۱۶-بهمن-۱۳۹۲, ۱۷:۱۷:۱۰
آخرین ارسال: majid12376
  [سوال] sin cos بدست اوردن saeedsmk 1 2,076 ۰۲-بهمن-۱۳۹۲, ۰۰:۰۳:۱۰
آخرین ارسال: saeedsmk
  سوال در مورد بدست آوردن سورس Hacker_2010 7 6,056 ۰۵-مرداد-۱۳۹۲, ۰۰:۵۴:۵۰
آخرین ارسال: babyy
  بدست آوردن مطالب وب javaweb 4 5,975 ۱۶-خرداد-۱۳۹۲, ۱۳:۲۷:۳۰
آخرین ارسال: javaweb
Question نحوه نوشتن برنامه؟ honarju 4 5,432 ۰۱-اسفند-۱۳۹۱, ۲۳:۰۱:۰۷
آخرین ارسال: honarju
  نحوه قرار دادن فایل فلش و عکس با پسوندpng؟ student-p 10 11,322 ۱۲-دى-۱۳۹۱, ۱۲:۵۱:۱۶
آخرین ارسال: student-p
  نحوه اطلاع از اجرای یک برنامه در ویندوز ترانسپورتر 18 12,176 ۲۲-آبان-۱۳۹۱, ۱۰:۰۲:۳۸
آخرین ارسال: lord_viper

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS