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

ارسال ها: 317
تاریخ عضویت: دي ۱۳۸۷

تشکرها : 404
( 377 تشکر در 160 ارسال )
ارسال: #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

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

اگه یه روز هنگام پاسخ دادن به سوال کسی غرور برت داشت ، به روز اولی که خودت شروع کردی فکر کن 026

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

ارسال ها: 73
تاریخ عضویت: دي ۱۳۸۵

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

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

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

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

ارسال ها: 115
تاریخ عضویت: اسفند ۱۳۸۹

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

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


موضوع های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
Question بدست اوردن IP ISP Ghoghnus 9 3,379 ۴-فروردين-۱۳۹۳ ۱۲:۳۲:۲۶
آخرین ارسال: mahdi321
  سورس کد بدست اوردن ادد لیست یاهو storng_function 15 6,445 ۱۶-بهمن-۱۳۹۲ ۱۶:۱۷:۱۰
آخرین ارسال: majid12376
  [سوال] sin cos بدست اوردن reza 1 198 ۱-بهمن-۱۳۹۲ ۲۳:۰۳:۱۰
آخرین ارسال: saeedsmk
  سوال در مورد بدست آوردن سورس Hacker_2010 7 553 ۴-مرداد-۱۳۹۲ ۲۳:۵۴:۵۰
آخرین ارسال: babyy
  بدست آوردن مطالب وب javaweb 4 876 ۱۶-خرداد-۱۳۹۲ ۱۲:۲۷:۳۰
آخرین ارسال: javaweb
Question نحوه نوشتن برنامه؟ honarju 4 621 ۱-اسفند-۱۳۹۱ ۲۲:۰۱:۰۷
آخرین ارسال: honarju
  نحوه قرار دادن فایل فلش و عکس با پسوندpng؟ student-p 10 1,350 ۱۲-دي-۱۳۹۱ ۱۱:۵۱:۱۶
آخرین ارسال: student-p
  نحوه اطلاع از اجرای یک برنامه در ویندوز ترانسپورتر 18 1,561 ۲۲-آبان-۱۳۹۱ ۰۹:۰۲:۳۸
آخرین ارسال: lord_viper
  [سوال] بدست اودن درصد فایل دانلودی از پنجره دانلود idm movaffag 1 575 ۱۷-تير-۱۳۹۱ ۱۷:۱۳:۱۶
آخرین ارسال: rap0661
  بدست آوردن رفم سمت راست snoopboy 1 565 ۲۱-خرداد-۱۳۹۱ ۰۹:۴۷:۵۷
آخرین ارسال: Di Di

پرش به انجمن: