Guest User

Untitled

a guest
Jan 16th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. class Network{
  2. public:
  3. string src_ip_;
  4. string alternative_src_ip_;
  5. array<unsigned char,6> mac_;
  6. string toString(){
  7. stringstream ss;
  8. ss << src_ip_ << SEPERATOR << alternative_src_ip_ << SEPERATOR ;
  9. return ss.str();
  10. }
  11. }
  12.  
  13. void printMac(array<unsigned char, 6> mac) {
  14. printf("%02x:%02x:%02x:%02x:%02x:%02xn",
  15. (unsigned char) mac[0], (unsigned char) mac[1],
  16. (unsigned char) mac[2], (unsigned char) mac[3],
  17. (unsigned char) mac[4], (unsigned char) mac[5]);
  18. }
  19.  
  20. void printMac(array<unsigned char, 6> mac, char (&out)[18]) {
  21. sprintf(out, "%02x:%02x:%02x:%02x:%02x:%02x",
  22. (unsigned char) mac[0], (unsigned char) mac[1],
  23. (unsigned char) mac[2], (unsigned char) mac[3],
  24. (unsigned char) mac[4], (unsigned char) mac[5]);
  25. }
  26.  
  27. std::ostream &operator<<(std::ostream &os, std::array<unsigned char, 6> mac) {
  28. char buf[18];
  29. printMac(mac, buf);
  30. return os << buf << 'n';
  31. }
  32.  
  33. std::ostringstream s;
  34. unsigned char arr[6] = { 0, 14, 10, 11, 89, 10 };
  35.  
  36. s << std::hex << std::setfill('0');
  37.  
  38. for (int i = 0; i < sizeof(arr); i++)
  39. {
  40. if (i > 0) s << ':';
  41.  
  42. // Need to:
  43. // - set width each time as it only
  44. // applies to the next output field.
  45. // - cast to an int as std::hex is for
  46. // integer I/O
  47. s << std::setw(2) << static_cast<int>(arr[i]);
  48. }
  49.  
  50. ss << boost::format("%02x:%02x:%02x:%02x:%02x:%02xn") % mac[0] % mac[1] % mac[2] % mac[3] % mac[4] % mac[5];
Add Comment
Please, Sign In to add comment