-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


Преобразуем Ip адрес в число и обратно

Вторник, 16 Февраля 2016 г. 10:40 + в цитатник
Всем привет!

Почему-то я не смог найти в Microsoft Access на чистом Visual Basic ни одного живого и до конца написанного примера перевода строкового IP-адреса в число и обратно. Находил примеры только на других языках. В результате родились две функции такого вида:

' Преобразуем число в строковый IP-адрес
Function Ip_to_String(Sss As Long)

Dim R1 As Double
Dim R2 As Double
Dim R3 As Double
Dim R4 As Double

R1 = Int(Sss / 256 / 256 / 256) 'Определяем 1 октет IP-адреса
R2 = Int((Sss - R1 * 256 * 256 * 256) / 256 / 256) 'Определяем 2 октет IP-адреса
R3 = Int((Sss - R1 * 256 * 256 * 256 - R2 * 256 * 256) / 256) 'Определяем 3 октет IP-адреса
R4 = Int(Sss - R1 * 256 * 256 * 256 - R2 * 256 * 256 - R3 * 256) 'Определяем 4 октет IP-адреса

'Сливаем все в одну кучу
Ip_to_String = Trim(Str(R1)) & "." & Trim(Str(R2)) & "." & Trim(Str(R3) & "." & Trim(Str(R4)))

End Function


' Преобразуем строковый IP-адрес в число
Function Ip_to_Integer(Sss As String)

Dim N1 As Byte
Dim N2 As Byte
Dim N3 As Byte

N1 = InStr(1, Sss, ".") ' Находим положение первой точки
N2 = InStr(N1 + 1, Sss, ".") ' Находим положение второй точки
N3 = InStr(N2 + 1, Sss, ".") ' Находим положение третьей точки

'Сливаем все в одну кучуIp_to_Integer = Mid(Sss, 1, N1 - 1) * 256 * 256 * 256 + Mid(Sss, N1 + 1, N2 - N1 - 1) * 256 * 256 + Mid(Sss, N2 + 1, N3 - N2 - 1) * 256 + Mid(Sss, N3 + 1, Len(Sss) - N3)

End Function


Вопрос заключается в том, правильно ли я все сделал? Не будет ли тормозить такой алгоритм в запросах при обращении к большим таблицам? Может есть какое-то более быстрое и гибкое решение? Подскажите, плиииз!

http://www.sql.ru/forum/1200802/preobrazuem-ip-adres-v-chislo-i-obratno


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку