return (asio_address_.is_v4());
}
+ /// \brief Convenience function to check if it is an IPv4 zero address.
+ ///
+ /// \return true if the address is the zero IPv4 address.
+ bool isV4Zero() const {
+ return (equals(IPV4_ZERO_ADDRESS()));
+ }
+
+ /// \brief Convenience function to check if it is an IPv4 broadcast
+ /// address.
+ ///
+ /// \return true if the address is the broadcast IPv4 address.
+ bool isV4Bcast() const {
+ return (equals(IPV4_BCAST_ADDRESS()));
+ }
+
/// \brief Convenience function to check for an IPv6 address
///
/// \return true if the address is a V6 address
return (asio_address_.is_v6());
}
+ /// \brief Convenience function to check if it is an IPv4 zero address.
+ ///
+ /// \return true if the address is the zero IPv4 address.
+ bool isV6Zero() const {
+ return (equals(IPV6_ZERO_ADDRESS()));
+ }
+
/// \brief checks whether and address is IPv6 and is link-local
///
/// \return true if the address is IPv6 link-local, false otherwise
EXPECT_FALSE(address6.isV4());
}
+TEST(IOAddressTest, isV4Zero) {
+ const IOAddress address_zero("0.0.0.0");
+ const IOAddress address_non_zero("192.0.2.3");
+
+ EXPECT_TRUE(address_zero.isV4Zero());
+ EXPECT_FALSE(address_non_zero.isV4Zero());
+}
+
+TEST(IOAddressTest, isV4Bcast) {
+ const IOAddress address_bcast("255.255.255.255");
+ const IOAddress address_non_bcast("10.2.3.4");
+
+ EXPECT_TRUE(address_bcast.isV4Bcast());
+ EXPECT_FALSE(address_non_bcast.isV4Bcast());
+}
+
TEST(IOAddressTest, isV6) {
const IOAddress address4("192.0.2.1");
const IOAddress address6("2001:db8:1::dead:beef");
EXPECT_TRUE(address6.isV6());
}
+TEST(IOAddressTest, isV6Zero) {
+ const IOAddress address_zero("::");
+ const IOAddress address_non_zero("0.0.0.0");
+
+ EXPECT_TRUE(address_zero.isV6Zero());
+ EXPECT_FALSE(address_non_zero.isV6Zero());
+}
+
TEST(IOAddressTest, uint32) {
IOAddress addr1("192.0.2.5");