]> git.saurik.com Git - apple/mdnsresponder.git/blob - mDNSMacOSX/BonjourTop/source/bjIPAddr.h
mDNSResponder-1310.60.4.tar.gz
[apple/mdnsresponder.git] / mDNSMacOSX / BonjourTop / source / bjIPAddr.h
1 //
2 // bjIPAddr.h
3 // TestTB
4 //
5 // Created by Terrin Eager on 1/19/13.
6 //
7 //
8
9 #ifndef __TestTB__bjIPAddr__
10 #define __TestTB__bjIPAddr__
11
12 #include <iostream>
13 #include <sys/socket.h>
14 #include "bjtypes.h"
15
16 class BJIPAddr
17 {
18 public:
19 BJIPAddr();
20 BJIPAddr(const BJIPAddr& src);
21
22 void Empty();
23
24 bool IsBonjourMulticast();
25 bool IsSameSubNet(BJIPAddr* addr);
26
27 bool IsIPv4();
28 bool IsIPv6();
29 bool IsIPv6LinkLocal();
30 bool IsEmpty();
31 bool IsEmptySubnet();
32
33 void Set(const char* addr);
34 void Setv6(const char* addr);
35 void Set(struct in6_addr* ipi6_addr);
36 void Set(struct in_addr* ip_addr);
37 void Set(struct sockaddr_storage* sockStorage);
38 void Setv4Raw(BJ_UINT8* ipi4_addr);
39 void Setv6Raw(BJ_UINT8* ipi6_addr);
40
41 sockaddr_storage* GetRawValue();
42 struct in6_addr* Getin6_addr();
43
44 void CreateLinkLocalIPv6(BJ_UINT8* mac);
45 BJ_COMPARE Compare(BJIPAddr* addr);
46 BJ_UINT16 GetPortNumber();
47 char* GetString();
48 private:
49 sockaddr_storage sockAddrStorage;
50 BJ_INT32 IPv4SubNet;
51 char stringbuffer[100];
52 static sockaddr_storage emptySockAddrStorage;
53 };
54
55
56 #endif /* defined(__TestTB__bjIPAddr__) */