Tous les produits
Search
Centre de documentation

Anti-DDoS:Obtenir les adresses IP d'origine derrière Anti-DDoS Proxy

Dernière mise à jour :Aug 11, 2026

Lorsqu'Anti-DDoS Proxy transfère le trafic vers votre serveur d'origine, il masque l'adresse IP du client. Récupérez cette adresse en analysant l'en-tête X-Forwarded-For ou en installant un module TOA.

Pour les services non web (couche 4)

Installez le module TOA sur votre serveur d'origine pour obtenir l'adresse IP d'origine. Obtenir l'adresse IP d'origine d'une requête en installant le module TOA. Si vous ne pouvez pas installer le module TOA, contactez le support technique.

Instance IPv4 d'Anti-DDoS Proxy

Le proxy transmet l'adresse IP source du client via le champ TCP Option. Pour un service non web (couche 4), après la négociation en trois temps entre Anti-DDoS Proxy et le serveur d'origine, le proxy modifie le dernier paquet ACK en y insérant une option TCP de 8 octets (type 254). Cette option contient le port source et l'adresse IP source du client. La capture Wireshark suivante illustre cet exemple. La section TCP Option – Experimental contient le numéro de port et les informations relatives à l'adresse IP source :

    Destination Port: 443
     [Stream index: 0]
     [TCP Segment Len: 0]
    Sequence number: 1    (relative sequence number)
    Acknowledgment number: 1    (relative ack number)
    1001 .... = Header Length: 36 bytes (9)
  ▶ Flags: 0x010 (ACK)
    Window size value: 65535
     [Calculated window size: 65535]
     [Window size scaling factor: -2 (no window scaling used)]
    Checksum: 0x90fb [unverified]
     [Checksum Status: Unverified]
    Urgent pointer: 0
  ▼ Options: (16 bytes), Experimental
    ▼ TCP Option – Experimental
        Kind: RFC3692-style Experiment 2 (254)
        Length: 8
        Magic Number: 0xc406
      Unknown (0xfa) (8 bytes)
0000   b4 0c 25 e2 80 46 4c e1   75 f7 e5 c1 08 00 45 00   ..%..FL. u.....E.
0010   00 38 00 00 40 00 26 06   cf e9 2f 70 49 ce 67 96   .8..@.&. ../pI.g.
0020   a4 02 1b 2e 01 bb c8 c1   cf 98 ab 2f 54 e1 90 10   ........ .../T...
0030   ff ff 90 fb 00 00 fe 08   c4 06 65 xx xx 85 fa 08   ........ ..exx...
0040   01 bb cb 6b 34 80                                     ...k4.
  • Numéro de port : Le champ Magic Number contient le numéro de port en hexadécimal. Par exemple, c4 06 correspond à 50182 en décimal.

  • Adresse IP source : Les quatre octets qui suivent le numéro de port représentent l'adresse IP source en hexadécimal. Dans cet exemple, 65 ** ** 85 correspond à l'adresse IP source 101...133.

Instance IPv6 d'Anti-DDoS Proxy

Mode v6tov4

En mode v6tov4, lorsqu'un client IPv6 se connecte à un serveur d'origine IPv4, le dernier paquet ACK contient une option TCP de 40 octets (type 249). Cette option inclut le port source, l'adresse IP source et l'adresse IP d'Anti-DDoS Proxy. L'exemple suivant illustre ce cas :

Destination Port: 8080
[Stream index: 1]
[Stream Packet Number: 3]
[Conversation completeness: Incomplete, ESTABLISHED (7)]
[TCP Segment Len: 0]
Sequence Number: 1    (relative sequence number)
Sequence Number (raw): 2505761997
[Next Sequence Number: 1    (relative sequence number)]
Acknowledgment Number: 1    (relative ack number)
Acknowledgment number (raw): 483970095
1111 .... = Header Length: 60 bytes (15)
Flags: 0x010 (ACK)
Window: 4096
[Calculated window size: 262144]
[Window size scaling factor: 64]
Checksum: 0xbc88 [unverified]
[Checksum Status: Unverified]
Urgent Pointer: 0
Options: (40 bytes), Unknown (0xf9)
  TCP Option – Unknown
    Kind: Unknown (249)
    Length: 40
    Payload: 9d7d2401b180xxxd960f875d960f87000000012405e000100300000000000a7304b55
[Timestamps]
  • Numéro de port : Les deux premiers octets de la charge utile Payload contiennent le numéro de port en hexadécimal. Par exemple, 9d7d correspond à 40317 en décimal.

  • Adresse IP source : Les 16 octets qui suivent le numéro de port contiennent l'adresse IPv6 source en hexadécimal. Par exemple, 2401*****0f87 correspond à 2401:b180:100*:*:*:f87:5d96:f87.

    Remarque

    Les 20 octets restants dans la charge utile Payload contiennent les informations relatives à l'adresse IP d'Anti-DDoS.

Mode v6tov6

Dans un scénario v6tov6, où le client et le serveur d'origine utilisent tous deux IPv6, le dernier paquet ACK contient une option TCP de 20 octets (type 253). Cette option inclut le port source et l'adresse IP source. L'exemple suivant illustre ce cas :

Destination Port: 8080
 [Stream index: 0]
 [Stream Packet Number: 1]
 [Conversation completeness: Incomplete (12)]
 [TCP Segment Len: 0]
 Sequence Number: 1    (relative sequence number)
 Sequence Number (raw): 721958393
 [Next Sequence Number: 1    (relative sequence number)]
 Acknowledgment Number: 1    (relative ack number)
 Acknowledgment number (raw): 2789445640
 1010 .... = Header Length: 40 bytes (10)
 Flags: 0x010 (ACK)
 Window: 65535
 [Calculated window size: 65535]
 [Window size scaling factor: -1 (unknown)]
 Checksum: 0x90cc [unverified]
 [Checksum Status: Unverified]
 Urgent Pointer: 0
 Options: (20 bytes), Experimental
   TCP Option - Experimental: Unknown
       Kind: RFC3692-style Experiment 1 (253)
       Length: 20
       Experiment Identifier: Unknown (0xeb98)
       Data: 2401b180100xxx0f875d960f87
  • Numéro de port : Le champ Experiment Identifier contient le numéro de port en hexadécimal. Par exemple, eb98 correspond à 60312 en décimal.

  • Adresse IP source : Le champ Data contient l'adresse IPv6 source en hexadécimal. Par exemple, 24010f87 correspond à 2401:b180:100:::f87:5d96:f87.

Important

Ajoutez les blocs CIDR de retour vers l'origine d'Anti-DDoS Proxy à la liste d'autorisation de votre serveur d'origine afin d'éviter que le trafic transféré ne soit bloqué. Autoriser les blocs CIDR de retour vers l'origine à accéder au serveur d'origine.

Pour les services web (couche 7)

Méthode 1 : Utiliser l'en-tête X-Forwarded-For

Fonctionnement

  • Lorsqu'un proxy de couche 7 tel qu'Anti-DDoS Proxy transfère une requête, le serveur d'origine voit l'adresse IP du proxy comme source. L'en-tête X-Forwarded-For enregistre l'adresse IP réelle du client. Format : X-Forwarded-For: <adresse_IP_d'origine>.

  • Si une requête traverse plusieurs proxys (tels que WAF ou CDN), l'en-tête X-Forwarded-For enregistre l'adresse IP réelle du client suivie de chaque adresse IP de proxy. Format : X-Forwarded-For: real-client-IP, proxy-server-1-IP, proxy-server-2-IP, proxy-server-3-IP, .... Chaque proxy ajoute l'adresse du nœud précédent à l'en-tête X-Forwarded-For sans ajouter la sienne.

Méthodes de récupération

Récupérez la valeur de l'en-tête X-Forwarded-For dans le code de votre application :

Important
  • La première adresse IP de la valeur X-Forwarded-For séparée par des virgules correspond à l'adresse IP d'origine du client.

  • Vous pouvez également configurer votre serveur web (Nginx, IIS 6, IIS 7, Apache ou Tomcat) pour analyser l'en-tête X-Forwarded-For. Récupérer les adresses IP d'origine des clients.

  • ASP

    Request.ServerVariables("HTTP_X_FORWARDED_FOR")
  • ASP.NET (C#)

    Request.ServerVariables["HTTP_X_FORWARDED_FOR"]
  • PHP

    $_SERVER["HTTP_X_FORWARDED_FOR"]
  • JSP

    request.getHeader("HTTP_X_FORWARDED_FOR")

Méthode 2 : Utiliser un en-tête HTTP personnalisé

Présentation

Dans des architectures complexes, l'en-tête standard X-Forwarded-For (XFF) est vulnérable à la falsification et à la confusion des adresses IP dues aux multiples couches de proxy. Un en-tête HTTP personnalisé offre une transmission plus fiable de l'adresse IP du client.

Procédure

Configurez Anti-DDoS Proxy pour écrire l'adresse IP du client dans un en-tête HTTP personnalisé. Configurer les paramètres de retour vers l'origine.

  1. Connectez-vous à la page Website Config dans la console Anti-DDoS Proxy.

  2. Sur la page Website Config, cliquez sur Add Website.

  3. Sur la page Website Config, dans la section Forwarding Settings, définissez Traffic Marking sur Custom Header (par exemple, Custom-True-IP).

  4. Dans le code de votre application, récupérez la valeur de l'en-tête personnalisé, par exemple : request.getHeader("Custom-True-IP").