diff --git a/airflow-core/src/airflow/example_dags/example_dag_decorator.py b/airflow-core/src/airflow/example_dags/example_dag_decorator.py index 9216805a7f3f8..9f6e637c9178e 100644 --- a/airflow-core/src/airflow/example_dags/example_dag_decorator.py +++ b/airflow-core/src/airflow/example_dags/example_dag_decorator.py @@ -17,6 +17,8 @@ # under the License. from __future__ import annotations +import ipaddress + # [START dag_decorator_usage] from typing import TYPE_CHECKING, Any @@ -60,9 +62,13 @@ def example_dag_decorator(url: str = "http://httpbin.org/get"): @task(multiple_outputs=True) def prepare_command(raw_json: dict[str, Any]) -> dict[str, str]: external_ip = raw_json["origin"] - return { - "command": f"echo 'Seems like today your server executing Airflow is connected from IP {external_ip}'", - } + try: + ipaddress.ip_address(external_ip) + return { + "command": f"echo 'Seems like today your server executing Airflow is connected from IP {external_ip}'", + } + except ValueError: + raise ValueError(f"Invalid IP address: '{external_ip}'.") command_info = prepare_command(get_ip.output)