Tous les produits
Search
Centre de documentation

CDN:Fonctions de logique de requête

Dernière mise à jour :Aug 19, 2026

Cette rubrique décrit la syntaxe, la description, les paramètres et les valeurs de retour des fonctions de logique de requête. Elle fournit également des exemples d'utilisation de ces fonctions.

server_addr

Cette fonction permet de récupérer les adresses IP des serveurs qui reçoivent la requête actuelle. Le tableau suivant présente les détails relatifs à cette fonction.

ÉlémentDescription
Syntaxeserver_addr()
ParamètreS.O.
Exemple
s_addr = server_addr()
say(concat('s_addr:', s_addr))
Valeur de retourRenvoie les adresses IP des serveurs sous forme de chaîne.

server_port

Cette fonction permet de récupérer le port du serveur qui reçoit la requête actuelle. Le tableau suivant présente les détails relatifs à cette fonction.

ÉlémentDescription
Syntaxeserver_port()
ParamètreS.O.
Exemple
s_addr = server_addr()
say(concat('s_addr:', s_addr))
Valeur de retourRenvoie le port du serveur qui reçoit la requête actuelle. Type de données : numérique.

client_addr

Cette fonction permet de récupérer l'adresse IP d'un client. Le tableau suivant présente les détails relatifs à cette fonction.

ÉlémentDescription
Syntaxeclient_addr()
ParamètreS.O.
Exemple
c_addr = client_addr()
c_port = client_port()
say(concat('c_addr:', c_addr))
say(concat('c_port:', tostring(c_port)))
Valeur de retourRenvoie l'adresse IP du client spécifié sous forme de chaîne.

client_port

Cette fonction permet de récupérer le port d'un client. Le tableau suivant présente les détails relatifs à cette fonction.

ÉlémentDescription
Syntaxeclient_port()
ParamètreS.O.
Exemple
c_addr = client_addr()
c_port = client_port()
say(concat('c_addr:', c_addr))
say(concat('c_port:', tostring(c_port)))
Valeur de retourRenvoie le port du client. Type de données : numérique.

client_region

Cette fonction permet de récupérer le code de division administrative d'un client. Le tableau suivant présente les détails relatifs à cette fonction.

ÉlémentDescription
Syntaxeclient_region()
ParamètreS.O.
Exemple
c_country = client_country()
c_region = client_region()
c_city = client_city()
c_isp = client_isp()
if c_country {
    say(concat('client_country:', c_country))
}
if c_region {
    say(concat('client_region:', c_region))
}
if c_city { 
    say(concat('client_city:', c_city)) 
}
if c_isp {
    say(concat('client_isp:', c_isp))
}
Valeur de retourRenvoie le code de division administrative du client spécifié sous forme de chaîne. Pour plus d'informations sur les codes de division administrative, consultez la section Codes de division administrative.

client_city

Cette fonction permet de récupérer le code ville d'un client. Le tableau suivant présente les détails relatifs à cette fonction.

ÉlémentDescription
Syntaxeclient_city()
ParamètreS.O.
Exemple
c_country = client_country()
c_region = client_region()
c_city = client_city()
c_isp = client_isp()
if c_country {
    say(concat('client_country:', c_country))
}
if c_region {
    say(concat('client_region:', c_region))
}
if c_city { 
    say(concat('client_city:', c_city)) 
}
if c_isp {
    say(concat('client_isp:', c_isp))
}
Valeur de retourRenvoie le code ville du client spécifié sous forme de chaîne. Pour plus d'informations sur les codes ville, consultez la section Tableau des codes villes.

client_isp

Cette fonction permet de récupérer le code du fournisseur d'accès Internet (FAI) d'un client. Le tableau suivant présente les détails relatifs à cette fonction.

ÉlémentDescription
Syntaxeclient_isp()
ParamètreS.O.
Exemple
c_country = client_country()
c_region = client_region()
c_city = client_city()
c_isp = client_isp()
if c_country {
    say(concat('client_country:', c_country))
}
if c_region {
    say(concat('client_region:', c_region))
}
if c_city { 
    say(concat('client_city:', c_city)) 
}
if c_isp {
    say(concat('client_isp:', c_isp))
}
Valeur de retourRenvoie le code FAI du client spécifié sous forme de chaîne. Pour plus d'informations sur les codes FAI, consultez la section Codes FAI.

ip_region

Cette fonction permet de récupérer le code de division administrative de la ville ou de la province à laquelle appartient une adresse IP spécifiée. Le tableau suivant présente les détails relatifs à cette fonction.

ÉlémentDescription
Syntaxeip_region(ipaddr)
Paramètreipaddr : spécifie une adresse IP en notation décimale pointée.
Exemple
c_country = ip_country('192.168.0.1')
c_region = ip_region('192.168.0.1')
c_city = ip_city('192.168.0.1')
c_isp = ip_isp('192.168.0.1')
if c_country {
    say(concat('ip_country:', c_country))
}
if c_region {
    say(concat('ip_region:', c_region))
}
if c_city {
    say(concat('ip_city:', c_city))
}
if c_isp {
    say(concat('ip_isp:', c_isp))
}
Valeur de retourRenvoie le code de division administrative de la ville ou de la province à laquelle appartient l'adresse IP spécifiée, sous forme de chaîne. Pour plus d'informations sur les codes de division administrative, consultez la section Codes de division administrative.

ip_city

Permet de récupérer le code pays d'une adresse IP spécifiée. Le tableau suivant présente les détails relatifs à cette fonction.

ÉlémentDescription
Syntaxeip_city(ipaddr)
Paramètreipaddr : spécifie une adresse IP en notation décimale pointée.
Exemple
c_country = ip_country('192.168.0.1')
c_region = ip_region('192.168.0.1')
c_city = ip_city('192.168.0.1')
c_isp = ip_isp('192.168.0.1')
if c_country {
    say(concat('ip_country:', c_country))
}
if c_region {
    say(concat('ip_region:', c_region))
}
if c_city {
    say(concat('ip_city:', c_city))
}
if c_isp {
    say(concat('ip_isp:', c_isp))
}
Valeur de retourRenvoie le code de division administrative du client spécifié sous forme de chaîne. Pour plus d'informations sur les codes ville, consultez la section Tableau des codes villes.

ip_isp

Cette fonction permet de récupérer le code FAI d'une adresse IP spécifiée. Le tableau suivant présente les détails relatifs à cette fonction.

ÉlémentDescription
Syntaxeip_isp(ipaddr)
Paramètreipaddr : spécifie une adresse IP en notation décimale pointée.
Exemple
c_country = ip_country('192.168.0.1')
c_region = ip_region('192.168.0.1')
c_city = ip_city('192.168.0.1')
c_isp = ip_isp('192.168.0.1')
if c_country {
    say(concat('ip_country:', c_country))
}
if c_region {
    say(concat('ip_region:', c_region))
}
if c_city {
    say(concat('ip_city:', c_city))
}
if c_isp {
    say(concat('ip_isp:', c_isp))
}
Valeur de retourRenvoie le code FAI de l'adresse IP spécifiée sous forme de chaîne. Pour plus d'informations sur les codes FAI, consultez la section Codes FAI.

req_uri

Remarques sur cette fonction :

  • Si le paramètre pattern n'est pas inclus dans la requête, l'URI de la requête est renvoyé, à l'exclusion des paramètres.

  • Si le paramètre pattern est inclus dans la requête, l'URI de la requête est comparé aux conditions de correspondance.

Le tableau suivant décrit les détails de cette fonction.

ÉlémentDescription
Syntaxereq_uri([pattern])
Paramètrepattern : comparé aux conditions de correspondance. Les types de correspondance suivants sont pris en charge :
  • Algorithme de force brute : compare les valeurs selon un algorithme de force brute. Il s'agit du type de correspondance par défaut.
  • Expression régulière : compare les valeurs selon une expression régulière précédée de re:.
Exemple
# req_uri
say(concat('req_uri: ', req_uri()))
if req_uri('/path1/path2') {
    say('req_uri: plain match')
}
if req_uri('re:/path[0-9]/path[0-9]') {
    say('req_uri: regex match')
}
Valeur de retour
  • Si le paramètre pattern n'est pas inclus dans la requête, l'URI de la requête est renvoyé. Type de données : string.
  • Si le paramètre pattern est inclus dans la requête et que la requête correspond aux conditions de correspondance, la valeur true est renvoyée. Si aucune condition ne correspond, la valeur false est renvoyée.
Exemples de valeurs de retour :
Request: /path1/path2?mode=ip   
Response:
req_uri: /path1/path2
req_uri: plain match
req_uri: regex match

req_uri_basename

Remarques sur cette fonction :

  • Renvoie le nom de fichier dans l'URI de la requête si le paramètre pattern n'est pas inclus dans la requête.

  • Compare le nom de fichier dans l'URI de la requête aux conditions de correspondance si le paramètre pattern est inclus dans la requête.

Exemples de noms de fichiers :

  • Exemple 1 : Pour /document_detail/30360.html, le nom de fichier est 30360.

  • Exemple 2 : Pour /M604/guopei_mp4/ZYJY2017BJGL0101/2-1_g.mp4, le nom de fichier est 2-1_g.

  • Exemple 3 : Pour /tarball/foo.tar.bz2, le nom de fichier est foo.

Le tableau suivant décrit les détails de cette fonction.

ÉlémentDescription
Syntaxereq_uri_basename([pattern])
Paramètrepattern : comparé aux conditions de correspondance. Les types de correspondance suivants sont pris en charge :
  • Algorithme de force brute : compare les valeurs selon un algorithme de force brute. Il s'agit du type de correspondance par défaut.
  • Expression régulière : compare les valeurs selon une expression régulière précédée de re:.
Exemple
# req_uri_basename
basename = req_uri_basename()
say(concat('req_uri_basename: ', basename, ' ', len(basename)))
if req_uri_basename('foo') {
    say('req_uri_basename: plain match')
}
if req_uri_basename('re:^f.*') {
    say('req_uri_basename: regex match')
}
Valeur de retour
  • Renvoie le nom de fichier dans l'URI de la requête si le paramètre pattern n'est pas inclus dans la requête. Type de données : string.
  • Si le paramètre pattern est inclus dans la requête et que la requête correspond aux conditions de correspondance, la valeur true est renvoyée. Si aucune condition ne correspond, la valeur false est renvoyée.
Exemples de valeurs de retour :
Request: /path1/path2/foo.tar.bz2
Response:
req_uri_basename: foo 3
req_uri_basename: plain match
req_uri_basename: regex match

req_uri_ext

Remarques sur cette fonction :

  • Renvoie l'extension dans l'URI de la requête si le paramètre pattern n'est pas inclus dans la requête.

  • Compare l'extension dans l'URI de la requête aux conditions de correspondance si le paramètre pattern est inclus dans la requête.

Exemples d'extensions :

  • Exemple 1 : Pour /document_detail/30360.html, l'extension est .html.

  • Exemple 2 : Pour /M604/guopei_mp4/ZYJY2017BJGL0101/2-1_g.mp4, l'extension est .mp4.

  • Exemple 3 : Pour /tarball/foo.tar.bz2, l'extension est .tar.bz2.

Le tableau suivant décrit les détails de cette fonction.

ÉlémentDescription
Syntaxereq_uri_ext([pattern])
Paramètrepattern : comparé aux conditions de correspondance. Les types de correspondance suivants sont pris en charge :
  • Algorithme de force brute : compare les valeurs selon un algorithme de force brute. Il s'agit du type de correspondance par défaut.
  • Expression régulière : compare les valeurs selon une expression régulière précédée de re:.
Exemple
# req_uri_ext
ext = req_uri_ext()
say(concat('req_uri_ext: ', ext, ' ', len(ext)))
if req_uri_ext('.tar.bz2') {
    say('req_uri_ext: plain match')
}
if req_uri_ext('re:\.tar\.bz[0-2]') {
    say('req_uri_ext: regex match')
}
Valeur de retour
  • Renvoie l'extension dans l'URI de la requête si le paramètre pattern n'est pas inclus dans la requête. Type de données : string.
  • Si le paramètre pattern est inclus dans la requête et que la requête correspond aux conditions de correspondance, la valeur true est renvoyée. Si aucune condition ne correspond, la valeur false est renvoyée.
Exemples de valeurs de retour :
Request: /path1/path2/foo.tar.bz2
Response:
req_uri_ext: .tar.bz2 8
req_uri_ext: plain match
req_uri_ext: regex match

req_uri_seg

Remarques sur cette fonction :

  • Dans les paramètres de réponse, les segments sont séparés par des barres obliques (/).

    • Renvoie tous les segments si le paramètre idx n'est pas inclus dans la requête.

    • Renvoie les segments (y compris l'index) qui suivent l'index spécifié si le paramètre idx est inclus dans la requête.

  • Index des paragraphes : l'index commence à 1 et augmente à partir de l'index le plus à gauche lorsque d'autres paragraphes sont ajoutés.

  • Limite de paragraphe : Un paragraphe peut contenir jusqu'à 128 caractères. Les caractères dépassant cette limite sont supprimés.

Le tableau suivant décrit les détails de cette fonction.

ÉlémentDescription
Syntaxereq_uri_seg([idx])
Paramètreidx : spécifie l'index de départ. Ce paramètre est facultatif.
Exemple
# req_uri_seg
def echo_each(k, v, u) {
    say(concat(get(u, 'msg'), ' : segs[', k, ']=', v))
}
# fetch all segments
segs = req_uri_seg()
foreach(segs, echo_each, ['msg'='req_uri_seg()'])
# fetch segments from idx 3
segs = req_uri_seg(3)
if get(segs, 3) {
    say(concat('req_uri_seg(3): segs[3]=', get(segs, 3)))
}
if get(segs, 4) {
    say(concat('req_uri_seg(3): segs[4]=', get(segs, 4)))
}
if get(segs, 5) {
    say(concat('req_uri_seg(3): segs[5]=', get(segs, 5)))
}
Valeur de retourType de données : dictionary. Les paragraphes pertinents sont inclus.
Remarque Lorsque la fonction récupère le paragraphe à partir du dictionnaire renvoyé en fonction de l'index spécifié, elle vérifie si le paragraphe est vide.
Exemples de valeurs de retour :
Request: /path1/path2/path3/path4?mode=req2
Response:
req_uri_seg() : segs[1]=path1
req_uri_seg() : segs[2]=path2
req_uri_seg() : segs[3]=path3
req_uri_seg() : segs[4]=path4
req_uri_seg(3): segs[3]=path3
req_uri_seg(3): segs[4]=path4

req_uri_arg

Cette fonction interroge la valeur d'un paramètre spécifié. Si le paramètre pattern est inclus dans la requête, la valeur du paramètre spécifié est comparée aux conditions de correspondance. Le tableau suivant décrit les détails de cette fonction.

ÉlémentDescription
Syntaxereq_uri_arg(name, [pattern])
Paramètre
  • name : le nom du paramètre.
  • pattern : comparé aux conditions de correspondance. Les types de correspondance suivants sont pris en charge :
    • Algorithme de force brute : compare les valeurs selon un algorithme de force brute. Il s'agit du type de correspondance par défaut.
    • Expression régulière : compare les valeurs selon une expression régulière précédée de re:.
Exemple
# req_uri_arg
uid = req_uri_arg('uid')
if uid {
    say(concat('found uid ', uid))
} else {
    say('not found uid')
}
uid_chk = req_uri_arg('uid', '058334')
if uid_chk {
    say('check uid ok. plain mode')
} else {
    say('check uid fail. plain mode')
}
uid_chk = req_uri_arg('uid', 're:[0-9]+')
if uid_chk {
    say('check uid ok. regex mode')
} else {
    say('check uid fail. regex mode')
}
Valeur de retour
  • Si le paramètre pattern n'est pas inclus dans la requête
    • Le paramètre spécifié existe : renvoie la valeur du paramètre spécifié par le paramètre name sous forme de chaîne.
    • Le paramètre spécifié n'existe pas : renvoie la valeur false.
  • Si le paramètre pattern est inclus dans la requête
    • Le paramètre spécifié existe : renvoie la valeur true si la valeur correspond aux conditions de correspondance. Sinon, la valeur false est renvoyée.
    • Le paramètre spécifié n'existe pas : renvoie la valeur false.
Exemples de valeurs de retour :
Request: /path1/path2/path3/path4?mode=req4&uid
Response:
not found uid
check uid fail. plain mode
check uid fail. regex mode

Request: /path1/path2/path3/path4?mode=req4&uid=
Response:
found uid
check uid fail. plain mode
check uid fail. regex mode

Request: /path1/path2/path3/path4?mode=req4&uid=12345
Response:
found uid 12345
check uid fail. plain mode
check uid ok. regex mode

req_uri_query_string

Remarques sur cette fonction :

  • Si le paramètre pattern n'est pas inclus dans la requête, les paramètres de la requête sont renvoyés, à l'exclusion du point d'interrogation (?).

  • Si le paramètre pattern est inclus dans la requête, les paramètres des requêtes sont comparés aux conditions de correspondance.

Le tableau suivant décrit les détails de cette fonction.

ÉlémentDescription
Syntaxereq_uri_query_string([pattern])
Paramètrepattern : comparé aux conditions de correspondance. Les types de correspondance suivants sont pris en charge :
  • Algorithme de force brute : compare les valeurs selon un algorithme de force brute. Il s'agit du type de correspondance par défaut.
  • Expression régulière : compare les valeurs selon une expression régulière précédée de re:.
Exemple
# req_uri_query_string
say(concat('req_uri_query_string: ', req_uri_query_string()))
if req_uri_query_string('mode=') {
    say('check uri query string ok. plain mode')
} else {
    say('check uri query string fail. plain mode')
}
if req_uri_query_string('re:mode=[0-9a-z]+') {
    say('check uri query string ok. regex mode')
} else {
    say('check uri query string fail. regex mode')
}
Valeur de retour
  • Renvoie les paramètres de la requête si le paramètre pattern n'est pas inclus dans la requête. Type de données : string.
  • Si le paramètre pattern est inclus dans la requête et que la requête correspond aux conditions de correspondance, la valeur true est renvoyée. Si aucune condition ne correspond, la valeur false est renvoyée.
Exemples de valeurs de retour :
Request: /path1/path2/path3/path4?mode=req5&token=34Deasd#243
Response:
req_uri_query_string: mode=req5&token=34Deasd
check uri query string fail. plain mode
check uri query string ok. regex mode

req_scheme

Remarques sur cette fonction :

  • Renvoie le schéma de la requête si le paramètre pattern n'est pas inclus dans la requête.

  • Compare le schéma de la requête aux conditions de correspondance si le paramètre pattern est inclus dans la requête.

Le tableau suivant décrit les détails de cette fonction.

ÉlémentDescription
Syntaxereq_scheme([pattern])
Paramètrepattern : comparé aux conditions de correspondance. Les types de correspondance suivants sont pris en charge :
  • Algorithme de force brute : compare les valeurs selon un algorithme de force brute. Il s'agit du type de correspondance par défaut.
  • Expression régulière : compare les valeurs selon une expression régulière précédée de re:.
Exemple
# req_scheme
say(concat('req_scheme: ', req_scheme()))
if req_scheme('https') {
    say('check scheme ok. plain mode')
} else {
    say('check scheme fail. plain mode')
}
if req_scheme('re:https?') {
    say('check scheme ok. regex mode')
} else {
    say('check scheme fail. regex mode')
}
Valeur de retour
  • Renvoie le schéma de la requête si le paramètre pattern n'est pas inclus dans la requête. Type de données : string.
  • Si le paramètre pattern est inclus dans la requête et que la requête correspond aux conditions de correspondance, la valeur true est renvoyée. Si aucune condition ne correspond, la valeur false est renvoyée.
Dans cet exemple, les valeurs suivantes sont renvoyées :
Request: http://xx..
req_scheme: http
check scheme fail. plain mode
check scheme ok. regex mode

req_method

Remarques sur cette fonction :

  • Renvoie la méthode de requête si le paramètre pattern n'est pas inclus dans la requête.

  • Compare la méthode de requête aux conditions de correspondance si le paramètre pattern est inclus dans la requête.

Le tableau suivant décrit les détails de cette fonction.

ItemDescription
Syntaxreq_method([pattern])
Parameterpattern : comparé aux conditions de correspondance. Les types de correspondance suivants sont pris en charge :
  • Algorithme de force brute : compare les valeurs selon un algorithme de force brute. Il s'agit du type de correspondance par défaut.
  • Expression régulière : compare les valeurs selon une expression régulière précédée de re:.
Example
# req_method
say(concat('req_method: ', req_method()))
if req_method('GET') {
    say('check method ok. plain mode')
} else {
    say('check method fail. plain mode')
}
if req_method('re:(GET|POST)') {
    say('check method ok. regex mode')
} else {
    say('check method fail. regex mode')
}
Return value
  • Renvoie la méthode de requête si le paramètre pattern n'est pas inclus dans la requête. Type de données : string.
  • Si le paramètre pattern est inclus dans la requête et que la requête correspond aux conditions de correspondance, la valeur true est renvoyée. Si aucune condition ne correspond, la valeur false est renvoyée.
Exemples de valeurs de retour :
Request: POST /xxxx/xxx
Response:
req_method: POST
check method fail. plain mode
check method ok. regex mode

req_host

Remarques sur cette fonction :

  • Renvoie la valeur de l'en-tête de requête Host si le paramètre pattern n'est pas inclus dans la requête.

  • Compare la valeur de l'en-tête de requête Host aux conditions de correspondance si le paramètre pattern est inclus dans la requête.

Le tableau suivant décrit les détails de cette fonction.

ItemDescription
Syntaxreq_host([pattern])
Parameterpattern : comparé aux conditions de correspondance. Les types de correspondance suivants sont pris en charge :
  • Algorithme de force brute : compare les valeurs selon un algorithme de force brute. Il s'agit du type de correspondance par défaut.
  • Expression régulière : compare les valeurs selon une expression régulière précédée de re:.
Example
# req_host
say(concat('req_host: ', req_host()))
if req_host('image.developer.aliyundoc.com') {
    say('check host ok. plain mode')
} else {
    say('check host fail. plain mode')
}
if req_host('re:.+\.y\.z\.com') {
    say('check host ok. regex mode')
} else {
    say('check host fail. regex mode')
}
Return value
  • Renvoie la valeur de l'en-tête de requête Host si le paramètre pattern n'est pas inclus dans la requête. Type de données : string.
  • Si le paramètre pattern est inclus dans la requête et que la requête correspond aux conditions de correspondance, la valeur true est renvoyée. Si aucune condition ne correspond, la valeur false est renvoyée.
Exemples de valeurs de retour :
Request: Host: video.developer.aliyundoc.com
Response:
req_host: video.developer.aliyundoc.com
check host fail. plain mode
check host ok. regex mode

req_user_agent

Remarques sur cette fonction :

  • Renvoie la valeur de l'en-tête de requête User-Agent si le paramètre pattern n'est pas inclus dans la requête.

  • Compare la valeur de l'en-tête de requête User-Agent aux conditions de correspondance si le paramètre pattern est inclus dans la requête.

Le tableau suivant décrit les détails de cette fonction.

ItemDescription
Syntaxreq_user_agent([pattern])
Parameterpattern : comparé aux conditions de correspondance. Les types de correspondance suivants sont pris en charge :
  • Algorithme de force brute : compare les valeurs selon un algorithme de force brute. Il s'agit du type de correspondance par défaut.
  • Expression régulière : compare les valeurs selon une expression régulière précédée de re:.
Example
# req_user_agent
say(concat('req_user_agent: ', req_user_agent()))
if req_user_agent('Mozilla') {
    say('check user_agent ok. plain mode')
} else {
    say('check user_agent fail. plain mode')
}
if req_user_agent('re:^Mozilla') {
    say('check user_agent ok. regex mode')
} else {
    say('check user_agent fail. regex mode')
}
Return value
  • Renvoie la valeur de l'en-tête de requête User-Agent si le paramètre pattern n'est pas inclus dans la requête. Type de données : string.
  • Si le paramètre pattern est inclus dans la requête et que la requête correspond aux conditions de correspondance, la valeur true est renvoyée. Si aucune condition ne correspond, la valeur false est renvoyée.
Exemples de valeurs de retour :
ua: specifies user agents. Mozilla/5,0 (Windows NT 10.0; Win64; x64)
Response:
req_user_agent: Mozilla/5,0 (Windows NT 10.0; Win64; x64)
check user_agent fail. plain mode
check user_agent ok. regex mode

req_referer

Remarques sur cette fonction :

  • Renvoie la valeur de l'en-tête de requête Referer si le paramètre pattern n'est pas inclus dans la requête.

  • Compare la valeur de l'en-tête de requête Referer aux conditions de correspondance si le paramètre pattern est inclus dans la requête.

Le tableau suivant décrit les détails de cette fonction.

ItemDescription
Syntaxreq_referer([pattern])
Parameterpattern : comparé aux conditions de correspondance. Les types de correspondance suivants sont pris en charge :
  • Algorithme de force brute : compare les valeurs selon un algorithme de force brute. Il s'agit du type de correspondance par défaut.
  • Expression régulière : compare les valeurs selon une expression régulière précédée de re:.
Example
# req_referer
say(concat('req_referer: ', req_referer()))
if req_referer('https://example.aliyundoc.com/******00003') {
    say('check referer ok. plain mode')
} else {
    say('check referer fail. plain mode')
}
if req_referer('re:https://foo\.bar\.cn/\*+[0-9]+') {
    say('check referer ok. regex mode')
} else {
    say('check referer fail. regex mode')
}
Return value
  • Renvoie la valeur de l'en-tête de requête Referer si le paramètre pattern n'est pas inclus dans la requête. Type de données : string.
  • Si le paramètre pattern est inclus dans la requête et que la requête correspond aux conditions de correspondance, la valeur true est renvoyée. Si aucune condition ne correspond, la valeur false est renvoyée.
Exemples de valeurs de retour :
Request: Referer: https://example.aliyundoc.com/******00003
Response:
req_referer: https://example.aliyundoc.com/******00003
check referer ok. plain mode
check referer ok. regex mode

req_cookie

Cette fonction interroge la valeur d'un cookie spécifié. Si le paramètre pattern est inclus dans la requête, la valeur du cookie spécifié est comparée aux conditions de correspondance. Le tableau suivant décrit les détails de cette fonction.

ItemDescription
Syntaxreq_cookie(name, [pattern])
Parameter
  • name : spécifie le nom du cookie.
  • pattern : comparé aux conditions de correspondance. Les types de correspondance suivants sont pris en charge :
    • Algorithme de force brute : compare les valeurs selon un algorithme de force brute. Il s'agit du type de correspondance par défaut.
    • Expression régulière : compare les valeurs selon une expression régulière précédée de re:.
Example
# req_cookie
uid = req_cookie('uid')
if uid {
    say(concat('found cookie uid ', uid))
} else {
    say('not found cookie uid')
}
uid_chk = req_cookie('uid', '058334')
if uid_chk {
    say('check cookie uid ok. plain mode')
} else {
    say('check cookie uid fail. plain mode')
}
uid_chk = req_cookie('uid', 're:^[0-9]+')
if uid_chk {
    say('check cookie uid ok. regex mode')
} else {
    say('check cookie uid fail. regex mode')
}
Return value
  • Si le paramètre pattern n'est pas inclus dans la requête
    • Le cookie spécifié existe : renvoie la valeur du cookie spécifié par le paramètre name sous forme de chaîne.
    • Le paramètre spécifié n'existe pas : renvoie la valeur false.
  • Si le paramètre pattern est inclus dans la requête
    • Le paramètre spécifié existe : renvoie la valeur true si la valeur correspond aux conditions de correspondance. Sinon, la valeur false est renvoyée.
    • Le paramètre spécifié n'existe pas : renvoie la valeur false.
Exemples de valeurs de retour :
Request: Cookie: uid=123456; token=value2
Response:
found cookie uid 123456
check cookie uid fail. plain mode
check cookie uid ok. regex mode

req_first_x_forwarded

Remarques sur cette fonction :

  • Renvoie la première adresse de l'en-tête de requête X-Forwarded-For si le paramètre pattern n'est pas inclus dans la requête.

  • Compare la première adresse de l'en-tête de requête X-Forwarded-For aux conditions de correspondance si le paramètre pattern est inclus dans la requête.

Le tableau suivant décrit les détails de cette fonction.

ItemDescription
Syntaxreq_first_x_forwarded_addr([pattern])
Parameterpattern : comparé aux conditions de correspondance. Les types de correspondance suivants sont pris en charge :
  • Algorithme de force brute : compare les valeurs selon un algorithme de force brute. Il s'agit du type de correspondance par défaut.
  • Expression régulière : compare les valeurs selon une expression régulière précédée de re:.
Example
# req_first_x_forwarded
say(concat('req_first_x_forwarded: ', req_first_x_forwarded()))
if req_first_x_forwarded('1.1.1.1') {
    say('check first_x_forwarded ok. plain mode')
} else {
    say('check first_x_forwarded fail. plain mode')
}
if req_first_x_forwarded('re:1.1.1.[0-9]') {
    say('check first_x_forwarded ok. regex mode')
} else {
    say('check first_x_forwarded fail. regex mode')
}
Return value
  • Renvoie la première adresse de l'en-tête de requête X-Forwarded-For si le paramètre pattern n'est pas inclus dans la requête. Type de données : string.
  • Si le paramètre pattern est inclus dans la requête et que la requête correspond aux conditions de correspondance, la valeur true est renvoyée. Si aucune condition ne correspond, la valeur false est renvoyée.
Exemples de valeurs de retour :
Request: X-Forwarded-For: 1.1.1.1, 10.10.10.10, 172.16.0.1
Response:
req_first_x_forwarded: 1.1.1.1
check first_x_forwarded ok. plain mode
check first_x_forwarded ok. regex mode

req_header

Cette fonction interroge la valeur d'un en-tête de requête spécifié. Si le paramètre pattern est inclus dans la requête, la valeur de l'en-tête de requête spécifié est comparée aux conditions de correspondance. Le tableau suivant décrit les détails de cette fonction.

ItemDescription
Syntaxreq_header(name, [pattern])
Parameter
  • name : spécifie le nom de l'en-tête de requête.

    Remplacez les traits d'union (-) dans l'en-tête de requête par des underscores (_). Par exemple, X-USER-ID doit être remplacé par x_user_id.

  • pattern : comparé aux conditions de correspondance. Les types de correspondance suivants sont pris en charge :
    • Algorithme de force brute : compare les valeurs selon un algorithme de force brute. Il s'agit du type de correspondance par défaut.
    • Expression régulière : compare les valeurs selon une expression régulière précédée de re:.
Example
# req_header
uid = req_header('x_uid')
if uid {
    say(concat('found header x-uid ', uid))
} else {
    say('not found header x-uid')
}
uid_chk = req_header('x_uid', 'es developer')
if uid_chk {
    say('check header x-uid ok. plain mode')
} else {
    say('check header x-uid fail. plain mode')
}
uid_chk = req_header('x_uid', 're:es [a-z]+')
if uid_chk {
    say('check header x-uid ok. regex mode')
} else {
    say('check header x-uid fail. regex mode')
}
Return value
  • Si le paramètre pattern n'est pas inclus dans la requête
    • L'en-tête de requête spécifié existe : renvoie la valeur de l'en-tête de requête spécifié par le paramètre name sous forme de chaîne.
    • Le paramètre spécifié n'existe pas : renvoie la valeur false.
  • Si le paramètre pattern est inclus dans la requête
    • Le paramètre spécifié existe : renvoie la valeur true si la valeur correspond aux conditions de correspondance. Sinon, la valeur false est renvoyée.
    • Le paramètre spécifié n'existe pas : renvoie la valeur false.
Exemples de valeurs de retour :
Request: X-UID: es developer
Response:
found header x-uid es developer
check header x-uid ok. plain mode
check header x-uid ok. regex mode

req_id

Cette fonction interroge l'Eagle Eye ID d'une requête. Chaque Eagle Eye ID identifie de manière unique une requête. Le tableau suivant décrit les détails de cette fonction.

ItemDescription
Syntaxreq_id()
ParameterN/A
Example
# req_id
say(concat('req_id: ', req_id()))
Return valueRenvoie l'ID de requête sous forme de chaîne. La valeur de retour dans cet exemple est req_id: 6451c43d15815890089411000e.

Codes de division administrative