Code Duplication    Length = 11-12 lines in 2 locations

lib/private/Security/Bruteforce/Throttler.php 2 locations

@@ 90-101 (lines=12) @@
87
	 * @param int $maskBits
88
	 * @return string
89
	 */
90
	private function getIPv4Subnet($ip,
91
								  $maskBits = 32) {
92
		$binary = \inet_pton($ip);
93
		for ($i = 32; $i > $maskBits; $i -= 8) {
94
			$j = \intdiv($i, 8) - 1;
95
			$k = (int) \min(8, $i - $maskBits);
96
			$mask = (0xff - ((pow(2, $k)) - 1));
97
			$int = \unpack('C', $binary[$j]);
98
			$binary[$j] = \pack('C', $int[1] & $mask);
99
		}
100
		return \inet_ntop($binary).'/'.$maskBits;
101
	}
102
103
	/**
104
	 * Return the given subnet for an IPv6 address and mask bits
@@ 110-120 (lines=11) @@
107
	 * @param int $maskBits
108
	 * @return string
109
	 */
110
	private function getIPv6Subnet($ip, $maskBits = 48) {
111
		$binary = \inet_pton($ip);
112
		for ($i = 128; $i > $maskBits; $i -= 8) {
113
			$j = \intdiv($i, 8) - 1;
114
			$k = (int) \min(8, $i - $maskBits);
115
			$mask = (0xff - ((pow(2, $k)) - 1));
116
			$int = \unpack('C', $binary[$j]);
117
			$binary[$j] = \pack('C', $int[1] & $mask);
118
		}
119
		return \inet_ntop($binary).'/'.$maskBits;
120
	}
121
122
	/**
123
	 * Return the given subnet for an IP and the configured mask bits