From 6a96b686e1e8c9a4c224454c0413e12e3cb2160f Mon Sep 17 00:00:00 2001 From: martinstibbe Date: Wed, 22 May 2019 09:04:11 -0500 Subject: [PATCH] [EN-1][Change] Add GetHostMaxAddress function --- networkInfo.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/networkInfo.go b/networkInfo.go index f0b1679..a64d512 100644 --- a/networkInfo.go +++ b/networkInfo.go @@ -37,3 +37,15 @@ func (s *Ip) GetBroadcastAddress() string { return strings.Join(networkRangeQuads, ".") } + +func (s *Ip) GetHostMaxAddress() string { + networkQuads := s.GetNetworkPortionQuards() + numberIPAddress := s.GetNumberIPAddresses() + networkRangeQuads := []string{} + networkRangeQuads = append(networkRangeQuads, fmt.Sprintf("%d", (networkQuads[0]&(s.subnet_mask>>24))+(((numberIPAddress-2)>>24)&0xFF))) + networkRangeQuads = append(networkRangeQuads, fmt.Sprintf("%d", (networkQuads[1]&(s.subnet_mask>>16))+(((numberIPAddress-2)>>16)&0xFF))) + networkRangeQuads = append(networkRangeQuads, fmt.Sprintf("%d", (networkQuads[2]&(s.subnet_mask>>8))+(((numberIPAddress-2)>>8)&0xFF))) + networkRangeQuads = append(networkRangeQuads, fmt.Sprintf("%d", (networkQuads[3]&(s.subnet_mask>>0))+(((numberIPAddress-2)>>0)&0xFF))) + + return strings.Join(networkRangeQuads, ".") +} \ No newline at end of file