@@ -264,7 +88,7 @@
function createPhoneLink(phone) {
if (!phone) return 'N/A';
const cleaned = phone.replace(/[^\d+\s]/g, '');
- const clientIP = '{{ request.remote_addr }}'; // Client-IP aus dem Server
+ const clientIP = '{{ request.headers.get("X-Forwarded-For", request.remote_addr) }}';
const allowedIPRanges = '{{ allowed_ip_ranges }}'.split(',');
// Überprüfen, ob die Client-IP in einem der erlaubten Bereiche liegt
@@ -328,6 +152,8 @@
const address = `${street}, ${plz} ${city}`;
const searchQuery = encodeURIComponent(address);
const routeQuery = encodeURIComponent(address);
+ const clientIP = '{{ request.headers.get("X-Forwarded-For", request.remote_addr) }}';
+ console.log('Client IP in createAddressLink:', clientIP);
return `${address}
@@ -343,9 +169,46 @@
return number - 12000;
}
- function createCustomerLink(number) {
- const adjustedNumber = adjustCustomerNumber(number);
- return `${adjustedNumber}`;
+ function isIPInSubnet(ip, subnet) {
+ // Teile die IP und das Subnetz in ihre Komponenten
+ const [subnetIP, bits] = subnet.split('/');
+ const ipParts = ip.split('.').map(Number);
+ const subnetParts = subnetIP.split('.').map(Number);
+
+ // Konvertiere IPs in 32-bit Zahlen
+ const ipNum = (ipParts[0] << 24) | (ipParts[1] << 16) | (ipParts[2] << 8) | ipParts[3];
+ const subnetNum = (subnetParts[0] << 24) | (subnetParts[1] << 16) | (subnetParts[2] << 8) | subnetParts[3];
+
+ // Erstelle die Subnetzmaske
+ const mask = ~((1 << (32 - bits)) - 1);
+
+ // Prüfe, ob die IP im Subnetz liegt
+ return (ipNum & mask) === (subnetNum & mask);
+ }
+
+ function createCustomerLink(nummer) {
+ const clientIP = '{{ request.headers.get("X-Forwarded-For", request.remote_addr) }}';
+ const allowedIPRanges = '{{ allowed_ip_ranges }}'.split(',');
+
+ // Debug-Ausgabe für die IP-Bereiche
+ console.log('Client IP in createCustomerLink:', clientIP);
+ console.log('Allowed IP Ranges:', allowedIPRanges);
+
+ // Überprüfe, ob die Client-IP in einem der erlaubten Bereiche liegt
+ const isAllowed = allowedIPRanges.some(range => {
+ const trimmedRange = range.trim();
+ console.log('Checking range:', trimmedRange);
+ return isIPInSubnet(clientIP, trimmedRange);
+ });
+
+ console.log('isAllowed in createCustomerLink:', isAllowed);
+
+ const adjustedNumber = adjustCustomerNumber(nummer);
+ if (isAllowed) {
+ return `${nummer}`;
+ } else {
+ return nummer;
+ }
}
function showCopyFeedback() {
@@ -483,7 +346,7 @@
Firma: ${highlightedCompanyPhone}
Mobil: ${highlightedMobilePhone}
-