Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
anatoliy_m
0 / 0 / 0
Регистрация: 10.11.2010
Сообщений: 36
#1

Узнать внешний IP адрес

19.07.2011, 21:55. Просмотров 1197. Ответов 10
Метки нет (Все метки)

Здравствуйте! Помогите мне, пожалуйста, с программой.
Узнал здесь на форуме как написать программу "Узнать внешний IP адрес". На Visual Basic 6 я научился её писать, но недавно купил Visual Basic 2010, попробывал там написать. Не получилось...Если можете, напишите её в виде Visual Basic 2010. Даю исходник Visual Basic 6.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
'Введем переменную
Dim HTMLCode As String 'переменная для хранения кода страницы
 
Private Sub Command1_Click()
Winsock1.RemotePort = 80 'устанавливаем порт сервера
Winsock1.RemoteHost = "ippages.com" 'Хост
Winsock1.Connect 'Подключаемся
End Sub
 
Private Sub Winsock1_Close()
Form1.Caption = "Not Connect" 'Не подключены
Winsock1.Close
End Sub
 
Private Sub Winsock1_Connect()
Form1.Caption = "Connected"      'Подключены
'Посылаем запрос на сервер  выдающему мой IP
Winsock1.SendData "GET " + "/simple/" + " HTTP/1.0" + Chr(10) + Chr(10)
End Sub
 
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Winsock1.GetData HTMLCode         'Получаем данные и помещаем их в переменную CODE
IP.Text = CutIP(HTMLCode)
End Sub
 
' Функция "вытягивания" IP  из HTML
Function CutIP(HTML As String) As String
Dim p1 As Integer
    p1 = InStr(HTML, "Content-Type: text/html")
    CutIP = Trim(Mid(HTML, p1 + 27, Len(HTML) - p1 - 23))
End Function
Зарание спасибо!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.07.2011, 21:55
Ответы с готовыми решениями:

Как узнать внешний IP-адрес
Доброе Время суток. Есть программа для Рекконекта интернет соединений. В ней...

Как узнать внешний IP адрес?
Как узнать внешний IP адрес с помощью сайта www.getip.com? Получаем html код...

Как узнать внешний IP
Делал в VS' 10 Вот код: Public Class Form1 Dim HTMLCode As String ...

Как узнать внешний IP другого компьютера
Здравствуйте всем! Если сможете - помогите, пожалуйста. Как можно узнать IP...

Зная IP-адрес машины – узнать имя хоста
Доброе время суток! есть у кого примеры данной задачки? можно прописать в...

10
Pro_grammer
Модератор
6144 / 2222 / 440
Регистрация: 24.04.2011
Сообщений: 3,918
Записей в блоге: 10
20.07.2011, 07:53 #2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Что серьезно купил? А что бесплатной Express Edition для тебя маловато будет?
Ну да ладно, у богатых свои причуды.
В общем я покажу тебе более простой способ узнать IP на VB 2010:
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Option Strict Off
Option Explicit On
Friend Class Form1
    Inherits System.Windows.Forms.Form
    Const scUserAgent As String = "IP_API_Loader"
    Const INTERNET_OPEN_TYPE_DIRECT As Short = 1
    Const INTERNET_OPEN_TYPE_PROXY As Short = 3
    Const INTERNET_FLAG_RELOAD As Integer = &H80000000
    Const sURL As String = "http://www.ippages.com/simple/"
    Private Declare Function InternetOpen Lib "wininet"  Alias "InternetOpenA"(ByVal sAgent As String, ByVal lAccessType As Integer, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Integer) As Integer
    Private Declare Function InternetCloseHandle Lib "wininet" (ByVal hInet As Integer) As Short
    Private Declare Function InternetReadFile Lib "wininet" (ByVal hFile As Integer, ByVal sBuffer As String, ByVal lNumBytesToRead As Integer, ByRef lNumberOfBytesRead As Integer) As Short
    Private Declare Function InternetOpenUrl Lib "wininet"  Alias "InternetOpenUrlA"(ByVal hInternetSession As Integer, ByVal lpszUrl As String, ByVal lpszHeaders As String, ByVal dwHeadersLength As Integer, ByVal dwFlags As Integer, ByVal dwContext As Integer) As Integer
    Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
        Dim hFile, hOpen, Ret As Integer
        Dim sBuffer As String
        'Создаем буфер для хранения информации
        sBuffer = Space(20)
        'Соединяемся с интернет
        hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
        'Заходим на нужный сайт с определителем IP
        hFile = InternetOpenUrl(hOpen, sURL, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
        'Считываем первые 20 байт информации
        InternetReadFile(hFile, sBuffer, 20, Ret)
        'Закрываем соединения
        InternetCloseHandle(hFile)
        InternetCloseHandle(hOpen)
        MsgBox("Ваш IP - " & sBuffer)
    End Sub
End Class
Win API - вот в чем сила брат!

P.S. На будущее, для того, что бы код из проекта на VB6 переделать в VB 2010 надо просто открыть его в версии 2010, и мастер преобразования попытается всё сделать сам. Остаются обычно мелкие ошибки, которые можно поправить руками.
2
anatoliy_m
0 / 0 / 0
Регистрация: 10.11.2010
Сообщений: 36
20.07.2011, 09:53  [ТС] #3
Спасибо большое. Но как это писать на VB2010, какие кнопки нужны или вообще что нужно? Зарание спасибо!
0
Pro_grammer
Модератор
6144 / 2222 / 440
Регистрация: 24.04.2011
Сообщений: 3,918
Записей в блоге: 10
20.07.2011, 14:38 #4
Вообще ни чего не надо. Просто создаешь новый проект Приложение WindowsForms
По умолчанию обычно называется WindowsApplication1, но это не важно. Высветится пустая форма, ты переходишь по правому клику кнопки мыши к коду, удаляешь весь код, который там записан и вставляешь тот, что я тебе написал на его место.
После чего запускаешь на выполнение - и наслаждаешься результатом.
Вот и всё!
Да, Интернет длжен быть подключен!
1
anatoliy_m
0 / 0 / 0
Регистрация: 10.11.2010
Сообщений: 36
20.07.2011, 18:10  [ТС] #5
Спасибо большое! :-)
0
kreotodr
27 / 25 / 8
Регистрация: 15.08.2014
Сообщений: 521
19.03.2015, 07:38 #6
Добрый день коллеги!
Просьба помочь.. Все что нашел на форуме по внешнему IPуже не рабочее.

Не трудно кому то подправить код (в шапке под vb6) под 2ip.ru ?
0
vova_king
24 / 24 / 9
Регистрация: 29.07.2010
Сообщений: 261
29.06.2015, 18:43 #7
очень странно.
Хороший IP не чего не скажешь!
0
Миниатюры
Узнать внешний IP адрес  
edward_freedom
1553 / 1432 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
29.06.2015, 19:15 #8
vova_king, ты видел какого ты года тему поднял? И перейди по той ссылке, что в коде. Тот сайт для определения ip уже не работает. Переделай под работающий сайт, например 2ip и будет работать!
1
Памирыч
Почетный модератор
20867 / 8751 / 1080
Регистрация: 11.04.2010
Сообщений: 11,013
29.06.2015, 19:15 #9
С наскока и топором
Импортируем
vb.net
1
Imports System.Net
vb.net
1
2
3
4
5
6
7
        Dim myHttpWebRequest As HttpWebRequest = HttpWebRequest.Create("http://2ip.ru/")
        Dim myHttpWebResponse As HttpWebResponse = myHttpWebRequest.GetResponse()
        Dim myStreamReader As New IO.StreamReader(myHttpWebResponse.GetResponseStream, System.Text.Encoding.UTF8)
        Dim Spl1 As String() = {"""d_clip_button"">", "</big>"}
 
        Dim MyIP As String = myStreamReader.ReadToEnd.Split(Spl1, StringSplitOptions.RemoveEmptyEntries)(1).Split(Spl1, StringSplitOptions.RemoveEmptyEntries)(0)
        MsgBox(MyIP)
2
vova_king
24 / 24 / 9
Регистрация: 29.07.2010
Сообщений: 261
29.06.2015, 22:35 #10
Интересно, а как его запихнуть в условие?
Что то я стараюсь и у меня не получается :-(
Просто я даже не знаю что это команды!
0
Памирыч
Почетный модератор
20867 / 8751 / 1080
Регистрация: 11.04.2010
Сообщений: 11,013
30.06.2015, 06:01 #11
Цитата Сообщение от vova_king Посмотреть сообщение
Интересно, а как его запихнуть в условие?
Лучше это поместить в процедуру, а уж ее можно и в условие. Непринципиально, но так будет лучше, имхо.

Цитата Сообщение от vova_king Посмотреть сообщение
Просто я даже не знаю что это команды!
Там просто скачивается HTML-страница и обрезается все лишнее, оставляя только IP-адрес
0
30.06.2015, 06:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2015, 06:01

По имени компьютера в сети узнать его ip адрес
Есть в Listbox список компьютеров в сети. возможно ли при выборе...

Как узнать IP-адрес компьютера в локальной сети
Как программно узнать IP? То есть на форме есть кнопка и текстбокс, как сделать...

Узнать адрес в памяти, по которому расположен массив
Всем здравствуйте. Объявлен массив вещественных значений Dim sng As Single =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru