Ребята, у меня есть IP Reference, который выходит из TCP Open VI.
Как я могу вытащить из него IP адрес?
Точнее скажем Connection ID.
Спасибо.
IP адрес из TCP Reference
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
-
- VIP
- Сообщения: 1337
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 44 раза
- Контактная информация:
Re: IP адрес из TCP Reference
Connection ID подаешь на вход TCP Get Raw Net Object.vi (этот инструмент находится в C:\Program Files\National Instruments\LabVIEW 20xx\vi.lib\Utility\tcp.llb). Оттуда вылазит идентификатор сокета. Этот идентификатор подаёшь на вход geetpeername() (эта функция находится в библиотеке ws2_32.dll). Оттуда вылазит структура на 16 байт. Байты 4-7 будут содержать искомый IP адрес.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: IP адрес из TCP Reference
Можно ещё getsockopt использовать с параметрами level = SOL_SOCKET (0xFFFF) и optname = SO_BSP_STATE (0x1009). Только почему-то структура CSADDR_INFO не 24 байта, как в MSDN описано, а 56. После вызова функции из первого и второго параметров (указатели lpSockaddr в LocalAddr и в RemoteAddr) вытаскивается с помощью MoveBlock'а вот такая информация:
Собственно, sin_addr - это и есть адрес, к которому подключаемся. Преобразуется из строки / в строку через String To IP / IP To String.
Код: Выделить всё
// IPv4 AF_INET sockets:
struct sockaddr_in {
short sin_family; // e.g. AF_INET, AF_INET6
unsigned short sin_port; // e.g. htons(3490)
struct in_addr sin_addr; // see struct in_addr, below
char sin_zero[8]; // zero this if you want to
};
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 4 Ответы
- 153 Просмотры
-
Последнее сообщение Artem.spb
-
- 38 Ответы
- 13305 Просмотры
-
Последнее сообщение AndreyDmitriev
-
- 5 Ответы
- 252 Просмотры
-
Последнее сообщение IvanLis