Изменить один конкретный байт IP-адреса

Итак, если у меня есть IP-адрес IP-адрес: 192.64.5.1, можно ли каким-то образом изменить определенный байт этого IP-адреса на IP-адрес: 192.64.**6* *.1

Моя идея — изменить IP-адрес на переменные IP-адрес: abcd Теперь я мог бы сказать a= 192; б= 64; с= 5 + 1; d= 1

Но что, если я получу IP-адрес: 192.64.5.1 в виде строки. Можно ли каким-то образом разделить его на 4 части, каждую из которых я могу индивидуально присвоить целому числу (a, b, c или d)?

, 👍0


2 ответа


Лучший ответ:

4

Все это можно сделать с помощью класса IPAddress.

Например: создайте IP-адрес из строки:

IPAddress myAddr(myString);

Создайте новый IP-адрес с изменением одного байта:

IPAddress myNewAddr(myAddr[0], myAddr[1], myAddr[2] + 1, myAddr[3]);
,

и myAddr[2] = 6. myAddr[2]+=1 или myAddr[2]++ тоже работает, @Juraj


0

Да, вы можете разделить строку с помощью функции библиотеки C strtok, а затем объединить все вместе с собственной строкой с помощью библиотеки C strcat. Вы можете преобразовать строки в atoi, поэтому используйте полученную строку из strtok с atoi в целое число.

Совет: попробуйте это на ПК с локальным компилятором C, потому что вы можете проверить это очень быстро (если только вы не сможете правильно реализовать это с первого раза). Затем вы копируете его в свой скетч Arduino. Обязательно начните с буфера символов, достаточно большого для максимально возможной строки IP-адреса.

,