# Native Code > برنامه نویسی در 6 VB > برنامه نویسی مرتبط با شبکه و وب در VB6 >  چگونه IP خود را با VB به دست آورم؟

## AlgorithmX

چگونه IP خود را با VB به دست آورم؟
لطفأ مرا راهنمایی کنید ؟
اگر میشود اطریق توابع API و امثال آن باشد نه کامپوننت

----------


## daniyal_1363

سلام

نمیدونم چه لزومی داره که حتماً از طریق API بخوان IP سیستم رو بدست بیارین چون از طریق کامپونت Winsock با نوشتن یک خط این کار انجام میشه 

ولی...

ولی اینم کد در آوردن IP از طریق API

----------


## warden

> نمیدونم چه لزومی داره که حتماً از طریق API بخوان IP سیستم رو بدست بیارین چون از طریق کامپونت Winsock با نوشتن یک خط این کار انجام میشه


سلام 
کد اينکار رو از طريق Winsock رو اگه کسي ميدونه لطفا بزاره (‌آي پي اينترنتي)
ممنون

----------


## kuh_nur

سلام
label1.caption=winsock1.loccalip

----------


## warden

خوبه تاکيد کردم آي پي اينترنتي نه شبکه محلي.
به هرحال تشکر.

----------


## kuh_nur

> خوبه تاکيد کردم آي پي اينترنتي نه شبکه محلي.
> به هرحال تشکر.


دوست عزیز
سلام
باید به عرض تون برسونم که دستور فوق آی پی متصل شده به اینترنت رو هم بر می گردونه
به شکل زیر توجه کنید

----------


## warden

اسمش روشه Local = محلي 
عکس زير رو ببينيد حاصل اين کد هستش‌! درحالي که آي پي من با 85 شروع ميشه.

----------


## FinalMOB

> چگونه IP خود را با VB به دست آورم؟
> لطفأ مرا راهنمایی کنید ؟
> اگر میشود اطریق توابع API و امثال آن باشد نه کامپوننت





> For Each Network In GetObject("winmgmts:").InstancesOf("Win32_NetworkA  dapterConfiguration")
>     Print Network.Caption, Network.IPAddress(0)
> Next


اين دستور در واقع استفاده از wmi هستش كه بر خلاف قدرت فوق العادشون، كمتر ازشون صحبت ميشه

اين دستور آي پي كل آداپتور ها و كانكشنهاتون رو بهتون ميده، دوستان توضيح بيشتري خواستن در خدمتيم

موفق باشيد.

----------


## kuh_nur

> اين دستور در واقع استفاده از wmi هستش كه بر خلاف قدرت فوق العادشون، كمتر ازشون صحبت ميشه
> 
> اين دستور آي پي كل آداپتور ها و كانكشنهاتون رو بهتون ميده، دوستان توضيح بيشتري خواستن در خدمتيم
> 
> موفق باشيد.


سلام
واسه من Error داد

----------


## warden

> اين دستور در واقع استفاده از wmi هستش كه بر خلاف قدرت فوق العادشون، كمتر ازشون صحبت ميشه
> 
> اين دستور آي پي كل آداپتور ها و كانكشنهاتون رو بهتون ميده، دوستان توضيح بيشتري خواستن در خدمتيم
> 
> موفق باشيد.


لطفا بيشتر توضيح بدين

----------


## FinalMOB

> سلام
> واسه من Error داد



---------------------------------------------------------------------
با عرض پوزش از دوستان، يك فاصله در بين كد افتاده بود كه باعث اين ارور شد (البته تقصير بنده نبوده)
فاصله در اين قسمت افتاده بود 



> Win32_NetworkA  dapterConfiguration


-----------------------------------------------------------------------
دوستان،‌مشكل از خود سايت است، وگرنه وقتي كليد "ويرايش" رو كه مي زنم مشكلي نداره، لطفا خودتون درستش كنيد
فايل ضميمه، ويرايش شده ي كد بالاست، چند خط بهش اضافه شده، بهتره از اين فايل استفاده كنين.

----------


## FinalMOB

> لطفا بيشتر توضيح بدين


ببينيد دوست عزيز
هر كارت شبكه يك آداپتور حساب ميشه و يك آي پي مخصوص داره. با هر كانكشني هم كه به اينترنت وصل مي شين، يك آي پي بهتون مي ده،‌ حالا چه اون كانكشن PPPOP باشه يا ديال آپ يا هر چيز ديگه
حالا اين دستور مياد بهتون IP هر نوع اتصالي كه داشته باشين رو به همراه نوع اتصال (و اگه مشخصات بيشتري خواستين بگين تا اضافه كنم) بهتون ميده.

*WMI چيه؟*
WMI در واقع يك مجموعه مديريتي فوق العاده قوي در ويندوزه كه خوش بختانه VB هم از اون پشتيباني ميكنه، با اين مجموعه مي تونيد از شير اينترنت تا جون ويندوز  :لبخند گشاده!:  رو بدست بياريد.
به عنوان مثال ميتونيد اطلاعات كاملي از باياس، پروسس ها، CPU، رم، هارد، شبكه، آداپتور ها، USB ها و به بيشتر از 400 قسمت مديريتي ويندوز دسترسي داشته باشين.

البته بنده يكبار ديگه هم اين مبحث رو در پست چهاردهم اين تاپيك به طور كامل توضيح دادم:



> https://barnamenevis.org/showthread.php?p=981922


-----------------------------------------------------------

و اما توضيح كد ها:



> For Each Obj1 In Array1
> .
>  .
> Next


اين حلقه باعث ميشه كه در هر بار اجراي حلقه،‌ يكي از آرايه هاي Array1 به Obj1 اختصاص يابد.
براي مثال اين حلقه باعث غير فعال شدن همه اشياء فرم مي شود:



> For Each ctl In Me.Controls
> ctl.Enabled = False
> Next



در اين برنامه، در هر بار اجراي حلقه، يكي از اشياء Win32_NetworkAdapterConfiguration (اين آرايه شامل تمام آداپتور ها و كانكشن ها مي باشد) به شيء Network نسبت داده مي شود.
سپس نام آن آداپتور به همرام آي پي آن روي فرم چاپ مي شود.

بازم اگه توضيح لازم بود در خدمتيم

موفق باشيد.

----------


## FinalMOB

اينم نسخه جديد همون برنامه با قابليت هاي زير:
1. تشخيص و استخرج *فقط* آي پي اينترنتي يا Valid
2. نمايش نوع اتصال
3. تشخيص متصل بودن يا نبودن
4. بازگردادن subnet
5. بازگرداندن mac address
6. بازگرداندن getway

موفق باشيد.

----------


## warden

ممنون
يک سوال پيش اومده برام!! اين سورس توي سيستمي که وي بي نصب نشده جواب ميده؟

----------


## FinalMOB

> ممنون
> يک سوال پيش اومده برام!! اين سورس توي سيستمي که وي بي نصب نشده جواب ميده؟


منظورتون وقتی هستش که تبدیل به exe بشه دیگه؟ نه؟

اصلا این سورس از امکانات خود vb استفاده نمی کنه و دقیقا به خود ویندوز مراجعه می کنه، بنابراین در صورتی که این سورس رو تبدیل به exe کنین و فایل های معمول (مثل msvbvm60.dll و غیره) رو هم کنارش کپی کنین، روی هر سیستمی جواب خواهد داد.

موفق باشید.

----------


## daniyal_1363

کانکش من از طریق پورت USB WWiMAX و این برنامه روی اون هیچ آی پی نشون نمیده ، در اصل اتصال به اینترنت رو اشتباه میگه  :متفکر: 

حالا این مشکلات به کنار، آیا روشی هست که میزان Send و Receive رو از اینترنت نمایش بده ؟

----------


## sr2m72

سلام

کامپوننت winsock رو روی فرم فرار بدهروی فورم یک تکس باکس بزار بعد این کد رو توی فورم بنویس:text1.text=winsock1.loccalip

----------


## behzad_vb.net

هیچ کدوم از کدها درست نبود

----------


## daniyal_1363

> سلام
> 
> 
> کامپوننت winsock رو روی فرم فرار بدهروی فورم یک تکس باکس بزار بعد این کد رو توی فورم بنویس:text1.text=winsock1.loccalip


 رفیق جان این کدی که دادی مال کلاس اول vb6 من کلاس اول رو رد کردم الان راهنماییم  :بامزه:  منظورم قسمت های دیگشه :

1. تشخيص و استخرج *فقط* آي پي اينترنتي يا Valid
2. نمايش نوع اتصال
3. تشخيص متصل بودن يا نبودن
4. بازگردادن subnet
5. بازگرداندن mac address
6. بازگرداندن getway

هیچکدومش کار نمیکنه با USB WWiMAX

----------


## rayka95

> رفیق جان این کدی که دادی مال کلاس اول vb6 من کلاس اول رو رد کردم الان راهنماییم  منظورم قسمت های دیگشه :
> 
> 1. تشخيص و استخرج *فقط* آي پي اينترنتي يا Valid
> 2. نمايش نوع اتصال
> 3. تشخيص متصل بودن يا نبودن
> 4. بازگردادن subnet
> 5. بازگرداندن mac address
> 6. بازگرداندن getway
> 
> هیچکدومش کار نمیکنه با USB WWiMAX


شما درست میگید 
کار نمیکنه . علتش این هست که اون چیزی که آموزش دادن برای اتصال PPPOE از طریق Bdige یا دیال اپ هستش . ولی شما که آی پیتون لوکال هست میتونید یه کار خوب کنید
یه شرت بذارید که اگر از تابع بالا ای پی پیدا نشد و یا not connect داد بره و آی پی رو از winsock بگیره . اگر هیچ کدوم نشد یه سایت مثل wimi.com چیزی رو سورس بگیره بعد آی پی رو از توش برداره و نشون بده

----------


## ameri110

اگر از یک روتر یا مثل من از وایمکس استفاده می کنید بهترین راه گرفتن آی پی از یک سرور می باشد یعنی با یک کد ساده چی اچ پی
<?php echo getenv('REMOTE_ADDR'); ?>
می توانید آی چی تان را در یک صفحه وب بدست بیارید و به وسیله وب بروز اون رو روی برنامه لود کنید.

----------


## daniyal_1363

واسه من مهم میزان دریافت بایت دریافتی از یه آی پی خاصه ( مثل همون آی پی اینترنت )

آقای FinalMOB شما چیزی در این مورد نمبدونین ؟

----------

