File tree Expand file tree Collapse file tree 3 files changed +39
-0
lines changed Expand file tree Collapse file tree 3 files changed +39
-0
lines changed Original file line number Diff line number Diff line change @@ -291,9 +291,16 @@ namespace pcpp
291
291
292
292
/* *
293
293
* @return A vector containing all addresses defined for this interface, each in pcap_addr_t struct
294
+ * @deprecated This method is deprecated and will be removed in future versions. Please use getIPAddresses() instead.
294
295
*/
296
+ PCPP_DEPRECATED (" This method is deprecated and will be removed in future versions. Please use getIPAddresses() instead." )
295
297
const std::vector<pcap_addr_t >& getAddresses () const { return m_Addresses; }
296
298
299
+ /* *
300
+ * @return A vector containing all IP addresses defined for this interface.
301
+ */
302
+ std::vector<IPAddress> getIPAddresses () const ;
303
+
297
304
/* *
298
305
* @return The MAC address for this interface
299
306
*/
Original file line number Diff line number Diff line change @@ -1168,6 +1168,29 @@ void PcapLiveDevice::setDefaultGateway()
1168
1168
#endif
1169
1169
}
1170
1170
1171
+ std::vector<IPAddress> PcapLiveDevice::getIPAddresses () const
1172
+ {
1173
+ std::vector<IPAddress> results;
1174
+ for (const auto & address : m_Addresses)
1175
+ {
1176
+ in_addr* ipv4Addr = internal::try_sockaddr2in_addr (address.addr );
1177
+ if (ipv4Addr != nullptr )
1178
+ {
1179
+ results.push_back (IPv4Address (ipv4Addr->s_addr ));
1180
+ continue ;
1181
+ }
1182
+
1183
+ in6_addr* ipv6Addr = internal::try_sockaddr2in6_addr (address.addr );
1184
+ if (ipv6Addr != nullptr )
1185
+ {
1186
+ results.push_back (IPv6Address (ipv6Addr->s6_addr ));
1187
+ continue ;
1188
+ }
1189
+ }
1190
+
1191
+ return results;
1192
+ }
1193
+
1171
1194
IPv4Address PcapLiveDevice::getIPv4Address () const
1172
1195
{
1173
1196
for (const auto & addrIter : m_Addresses)
Original file line number Diff line number Diff line change 11
11
#include " ../Common/TestUtils.h"
12
12
#include " ../Common/PcapFileNamesDef.h"
13
13
#include < array>
14
+ #include < algorithm>
14
15
#include < cstdio>
15
16
#if defined(_WIN32)
16
17
# include " PcapRemoteDevice.h"
@@ -296,6 +297,14 @@ PTF_TEST_CASE(TestPcapLiveDevice)
296
297
PTF_ASSERT_NOT_NULL (liveDev);
297
298
PTF_ASSERT_GREATER_THAN (liveDev->getMtu (), 0 );
298
299
PTF_ASSERT_TRUE (liveDev->open ());
300
+
301
+ PTF_ASSERT_EQUAL (liveDev->getIPv4Address (), ipToSearch);
302
+ {
303
+ // Should probably be refactored as PTF_ASSERT_CONTAINS or similar.
304
+ auto const ipAddresses = liveDev->getIPAddresses ();
305
+ PTF_ASSERT_TRUE (std::any_of (ipAddresses.begin (), ipAddresses.end (), [ipToSearch](pcpp::IPAddress const & addr) { return addr == ipToSearch; }));
306
+ }
307
+
299
308
DeviceTeardown devTeardown (liveDev);
300
309
int packetCount = 0 ;
301
310
int numOfTimeStatsWereInvoked = 0 ;
You can’t perform that action at this time.
0 commit comments