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

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

تشکرها : 403
( 330 تشکر در 143 ارسال )
ارسال: #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.)
۱۵-بهمن-۱۳۸۹ ۰۳:۴۶:۲۰
یافتن تمامی ارسال های این کاربر
نقل قول این ارسال در یک پاسخ
behzadX آفلاین
داره خودموني مي شه
**

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

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

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

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

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

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

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

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


موضوع های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
Question نحوه نوشتن برنامه؟ honarju 4 238 ۱-اسفند-۱۳۹۱ ۲۲:۰۱:۰۷
آخرین ارسال: honarju
  نحوه قرار دادن فایل فلش و عکس با پسوندpng؟ student-p 10 474 ۱۲-دي-۱۳۹۱ ۱۱:۵۱:۱۶
آخرین ارسال: student-p
  نحوه اطلاع از اجرای یک برنامه در ویندوز ترانسپورتر 18 699 ۲۲-آبان-۱۳۹۱ ۰۹:۰۲:۳۸
آخرین ارسال: lord_viper
  [سوال] بدست اودن درصد فایل دانلودی از پنجره دانلود idm movaffag 1 345 ۱۷-تير-۱۳۹۱ ۱۷:۱۳:۱۶
آخرین ارسال: rap0661
  بدست آوردن مطالب وب javaweb 3 449 ۶-تير-۱۳۹۱ ۱۱:۵۲:۱۴
آخرین ارسال: Ghoghnus
  بدست آوردن رفم سمت راست snoopboy 1 393 ۲۱-خرداد-۱۳۹۱ ۰۹:۴۷:۵۷
آخرین ارسال: Di Di
  بدست آوردن مشخصات سیستم های شبکه با WMI sahand87 0 542 ۲۵-اسفند-۱۳۹۰ ۱۰:۴۷:۵۵
آخرین ارسال: sahand87
  نحوه نوشتن exe میکر movaffag 3 556 ۲۱-اسفند-۱۳۹۰ ۱۷:۴۱:۳۰
آخرین ارسال: mohsen0025
  پایین آوردن حجم عکس هنگام ذخیره RAMA2009 9 911 ۱۷-بهمن-۱۳۹۰ ۰۱:۳۹:۲۲
آخرین ارسال: Payman62
Question بدست اوردن IP ISP Ghoghnus 8 2,278 ۱۲-آذر-۱۳۹۰ ۱۳:۵۲:۴۴
آخرین ارسال: Payman62

پرش به انجمن: