PDA

View Full Version : سوال: گرفتن IP با VB.net



feri_sharp
پنج شنبه 28 مهر 1390, 21:49 عصر
سلام دوستان.
توی VB.net با چه دستوری میشه کاری کرد که برنامه ای که مینوسیم خودش IP ما رو بگیره(وقتی به اینترنت وصل میشیم یا IP یی که باهاش به هر شبکه ای وصلیم) و کار هایی که ما میخوایم رو برامون انجام بده ؟
دقیقا می خوام بدونم که چجوری میشه و با چه دستور میشه کاری کرد که برنامه ای که با VB.net می نویسیم بفهمه که ما با چه IP یی به اینترنت وصلیم و این IP رو به ما برگردونه.
ممنون

sina_saravi1
پنج شنبه 28 مهر 1390, 22:06 عصر
سلام دوستان.
توی VB.net با چه دستوری میشه کاری کرد که برنامه ای که مینوسیم خودش IP ما رو بگیره(وقتی به اینترنت وصل میشیم یا IP یی که باهاش به هر شبکه ای وصلیم) و کار هایی که ما میخوایم رو برامون انجام بده ؟
دقیقا می خوام بدونم که چجوری میشه و با چه دستور میشه کاری کرد که برنامه ای که با VB.net می نویسیم بفهمه که ما با چه IP یی به اینترنت وصلیم و این IP رو به ما برگردونه.
ممنون
سلام
از این کد :

Dim IPha As String
For Each ip As Net.IPAddress In Net.Dns.Resolve(My.Computer.Name).AddressList
IPha += ip.ToString & vbCrLf
Next
MessageBox.Show(IPha)

feri_sharp
پنج شنبه 28 مهر 1390, 22:14 عصر
سلام دوست عزیز.
ممنون از جوابتون. ولی این کد شما IP یی رو که به من بر میگردونه ، IPیی هست که من باهاش به مودم ADSL ام وصلم در حالی که سایت هایی که IP نشون میدن مثل www.jahangames.com این IP رو به من نشون می ده 188.245.149.15
من می خوام بدونم چجوری باید این IP رو با VB.net بدست بیارم. ممنون.

sina_saravi1
پنج شنبه 28 مهر 1390, 22:21 عصر
سلام دوست عزیز.
ممنون از جوابتون. ولی این کد شما IP یی رو که به من بر میگردونه ، IPیی هست که من باهاش به مودم ADSL ام وصلم در حالی که سایت هایی که IP نشون میدن مثل www.jahangames.com این IP رو به من نشون می ده 188.245.149.15
من می خوام بدونم چجوری باید این IP رو با VB.net بدست بیارم. ممنون.
شما مطمئنی؟
آخه من که تو سایت رفتم و با نرم افزار چک کردم دیدم آی پی اولی که نرم افزار نشون میده همونیه که سایت نشون داده

feri_sharp
پنج شنبه 28 مهر 1390, 22:28 عصر
من الان با ADSL وصلم لا پورت PPPOE شاید واسه همینه . چون IP یی رو پیدا میکنه که با مودم ADSL ام با کابل شبکه وصلم. وقتی هم که میکشمش ، Localhost رو بهم نشون میده.

saeid.memfis
پنج شنبه 28 مهر 1390, 22:33 عصر
من الان با ADSL وصلم لا پورت PPPOE شاید واسه همینه . چون IP یی رو پیدا میکنه که با مودم ADSL ام با کابل شبکه وصلم. وقتی هم که میکشمش ، Localhost رو بهم نشون میده.

همونطور که خودتون گفتید مشکل از pppoe است..وقتی به این صورت تنظیم بشه به جای کامپیوتر شما مودم هست که آی پی میگیره روی نت..برای اینکه درست بشه..باید اتصال به اینترنت از روی مودم نباشه و به صورت کانکشن به اینترنت متصل بشید.

موفق باشید

feri_sharp
پنج شنبه 28 مهر 1390, 22:41 عصر
خوب پس باید پورتش رو بکنم bridge ولی این برنامه ای که دارم مینویسم ، قراره که بفروشمش یه شطرنج . بازی کن ها ممکنه از هر قشری باشن(شاید روی PPPOE تنظیم کرده باشن و ندونن چجوری باید به bridge تغییرش بدن!). یه راهی باید برای گرفتن IP Wan با پورت PPPOE باید باشه.

crazyfull
پنج شنبه 28 مهر 1390, 22:54 عصر
اگه به صورت bridge هم نتونستيد آيی اينترنتی خودتون رو مشاهده کنيد به اين معنا هست که شما پشت روتر هستيد و به همين دليل با روشهای معمول و منطقی و با کلاس هایی که برای اين کار در نظر گرفته شدن نميتونيد آيپی اينترنتی خودتون رو ببينيد
تنها راهش اينه که آی پی خودتون رو از سايت هايی که آيپی بازديد کننده ها رو بر ميگردونن استفاده کنيد
http://seemyip.com/iphone/#_home
http://cmyip.com/

feri_sharp
پنج شنبه 28 مهر 1390, 23:02 عصر
خوب حالا میشه این IP یی که این سایت ها برمی گردونن رو با VB.net بگیریمشون ؟چون من میخوام IP کاربری که با برنامه Login میکنه بره توی DB ذخیره بشه.

sina_saravi1
پنج شنبه 28 مهر 1390, 23:07 عصر
خوب حالا میشه این IP یی که این سایت ها برمی گردونن رو با VB.net بگیریمشون ؟چون من میخوام IP کاربری که با برنامه Login میکنه بره توی DB ذخیره بشه.

به نظر من از وب سرویس استفاده کن
یه هاست ویندوزی بگیر وب سرویستو روش سوار کن دیگه حله!

feri_sharp
پنج شنبه 28 مهر 1390, 23:07 عصر
البته اگر یکی کد PHP یی که IP رو نشون میده داره، بذاره چون بعد میشه با تابع زیر بردش توی VB.net. این تابع رو توی Stackoverflow دیدم.
Public Function GetIP() As String

Dim uri_val As New Uri("http://localhost/ip/ip.php")
Dim request As HttpWebRequest = HttpWebRequest.Create(uri_val)

request.Method = WebRequestMethods.Http.Get

Dim response As HttpWebResponse = request.GetResponse()
Dim reader As New StreamReader(response.GetResponseStream())
Dim myIP As String = reader.ReadToEnd()

response.Close()

Return myIP
End Function

crazyfull
پنج شنبه 28 مهر 1390, 23:07 عصر
خيلی راحت و با استفاده از کلاس های web ميتونيد اين کار رو انجام بديد .

اگه قراره برنامه ات نقش سرور رو هم بازی کنه بايد بگم که شديداً دچار مشکل ميشی بهتره از يه سرور ثابت استفاده کنيد

feri_sharp
پنج شنبه 28 مهر 1390, 23:11 عصر
مرسی از راهنمایی هاتون

feri_sharp
پنج شنبه 28 مهر 1390, 23:52 عصر
یه کد پیدا کردم که میشه باهاش External IP رو درآورد. ولی با استفاده از سایت whatismyip.com
Dim req As HttpWebRequest = WebRequest.Create("http://automation.whatismyip.com/n09230945.asp")
Dim res As HttpWebResponse = req.GetResponse()
Dim Stream As Stream = res.GetResponseStream()
Dim sr As StreamReader = New StreamReader(Stream)
MessageBox.Show(sr.ReadToEnd())
خدا نکنه که یه روزی این سایت whatismyip رو حواسشون نباشه ببندن. (البته با کد ASP هم یه کارایی میشه کرد)
موفق باشید.

crazyfull
جمعه 29 مهر 1390, 00:35 صبح
الان مشکل شما گرفتن آيپی کلاينت ها نيست; اگه کلاينت پشت روتر باشه يا فايروال داشته باشه يا آيپی وليد نداشته باشه يا از رو مودم اينترنت رو کانفيگ کرده باشه نميتونه از برنامه شما استفاده کنه