| // |
| // bjIPAddr.h |
| // TestTB |
| // |
| // Created by Terrin Eager on 1/19/13. |
| // |
| // |
| |
| #ifndef __TestTB__bjIPAddr__ |
| #define __TestTB__bjIPAddr__ |
| |
| #include <iostream> |
| #include <sys/socket.h> |
| #include "bjtypes.h" |
| |
| class BJIPAddr |
| { |
| public: |
| BJIPAddr(); |
| BJIPAddr(const BJIPAddr& src); |
| BJIPAddr &operator=(const BJIPAddr& src); |
| |
| void Empty(); |
| |
| bool IsBonjourMulticast(); |
| bool IsSameSubNet(BJIPAddr* addr); |
| |
| bool IsIPv4(); |
| bool IsIPv6(); |
| bool IsIPv6LinkLocal(); |
| bool IsEmpty(); |
| bool IsEmptySubnet(); |
| |
| void Set(const char* addr); |
| void Setv6(const char* addr); |
| void Set(struct in6_addr* ipi6_addr); |
| void Set(struct in_addr* ip_addr); |
| void Set(struct sockaddr_storage* sockStorage); |
| void Setv4Raw(BJ_UINT8* ipi4_addr); |
| void Setv6Raw(BJ_UINT8* ipi6_addr); |
| |
| sockaddr_storage* GetRawValue(); |
| struct in6_addr* Getin6_addr(); |
| |
| void CreateLinkLocalIPv6(BJ_UINT8* mac); |
| BJ_COMPARE Compare(BJIPAddr* addr); |
| BJ_UINT16 GetPortNumber(); |
| char* GetString(); |
| private: |
| sockaddr_storage sockAddrStorage; |
| BJ_INT32 IPv4SubNet; |
| char stringbuffer[100]; |
| static sockaddr_storage emptySockAddrStorage; |
| }; |
| |
| |
| #endif /* defined(__TestTB__bjIPAddr__) */ |