Blog

Berechnen der Start- und End-IP-Adresse eines CIDR-Blocks mit Terraform

Laurens Knoll

Laurens Knoll

Aktualisiert Oktober 20, 2025
2 Minuten

IP-Bereiche werden normalerweise in CIDR-Notation angegeben. Was aber, wenn Ihr Dienst Start- und End-IPs benötigt? In diesem Blog zeige ich Ihnen, wie Sie cidrhost verwenden, um die Start- und End-IPs zu berechnen.

Terraform cidrhost Funktion

Die Funktion cidrhost berechnet die Host-IP-Adressen innerhalb eines CIDR-Blocks. Sie akzeptiert ein Netzwerkadressen-Präfix in CIDR-Notation und gibt die IP zurück, die mit der angegebenen Hostnummer verknüpft ist.

> cidrhost("192.168.0.0/16", 10)
"192.168.0.10"
> cidrhost("192.168.0.0/16", 100)
"192.168.0.100"

Berechnen Sie Start- und End-IP

Die Start- und End-IP-Adressen sind die erste und letzte IP-Adresse eines CIDR-Blocks. In der Sprache von entspricht dies den Hostnummern 0 und -1. Letztere verwendet einen negativen Index, um das erste Element zu finden, das am Ende des IP-Adressbereichs beginnt.

> cidrhost("192.168.0.0/16", 0)
"192.168.0.0"
> cidrhost("192.168.0.0/16", -1)
"192.168.255.255"

Azure Sql Server Firewall-Regel Beispiel

Die nächste Terraform-Konfiguration verwendet die cidrhost-Funktion, um die Azure Sql Server Firewall-Regeln zu konfigurieren.

variable "allowed_ips" {
  description = <<EOT
  IP addresses, in CIDR notation, allowed to access this Sql Server.

  Example:
  {
    CompanyHQ = "192.168.0.0/24"
  }
  EOT
  type    = map(string)
  default = {}
}

resource "azurerm_mssql_firewall_rule" "sql_server_firewall" {
  for_each = var.allowed_ips

  server_id        = azurerm_mssql_server.sql_server.id # Reference your own Sql server instance
  name             = each.key
  start_ip_address = cidrhost(each.value, 0)
  end_ip_address   = cidrhost(each.value, -1)
}

Fazit

Terraform cidrhost berechnet die IP-Adressen innerhalb eines CIDR-Blocks. Nutzen Sie negative Indizes zur einfachen Berechnung der Start- und End-IP-Adressen. Photo by Anton Maksimov juvnsky on Unsplash

Verfasst von

Laurens Knoll

As a cloud consultant I enjoy improving what your company does best. I enable your business using cloud technology and enable your engineers by applying software engineering practices to your infrastructure domain.

Contact

Let’s discuss how we can support your journey.