すべてのプロダクト
Search
ドキュメントセンター

CDN:ロジック関数のリクエスト

最終更新日:Jan 24, 2024

このトピックでは、リクエストロジック関数の構文、機能、パラメーター、および戻り値について説明します。 このトピックでは、これらの関数の例も示します。

server_addr

この関数は、現在のリクエストを受信したサーバーのIPアドレスを照会します。 この関数の詳細を次の表に示します。
項目説明
構文server_addr()
パラメーターなし
s_addr = server_addr()
say(concat (の_addr:', s_addr)) 
戻り値サーバーのIPアドレスを文字列で返します。

server_port

この関数は、現在の要求を受信するサーバーポートを照会します。 この関数の詳細を次の表に示します。
項目説明
構文server_port()
パラメーターなし
s_addr = server_addr()
say(concat (の_addr:', s_addr)) 
戻り値現在のリクエストを受信したサーバーポートを返します。 データ型: numeric。

client_addr

重要 注意: クライアントアドレスがインターネットサービスプロバイダ (ISP) のNATルールによって変更されているか、IPアドレスがAlibaba Cloud CDNのアドレスプールにないため、戻り値が正確でない場合があります。 作業は慎重に行ってください。
この関数は、クライアントのIPアドレスを照会します。 この関数の詳細を次の表に示します。
項目説明
構文client_addr()
パラメーターなし
c_addr = client_addr()
c_port = client_port()
say(concat('c_addr:', c_addr))
say(concat('c_port:', tostring(c_port))) 
戻り値指定されたクライアントのIPアドレスを文字列で返します。

client_port

この関数は、クライアントのポートを照会します。 この関数の詳細を次の表に示します。
項目説明
構文client_port()
パラメーターなし
c_addr = client_addr()
c_port = client_port()
say(concat('c_addr:', c_addr))
say(concat('c_port:', tostring(c_port))) 
戻り値指定されたクライアントのポートを返します。 データ型: numeric。

client_region

重要 注意: クライアントアドレスがインターネットサービスプロバイダ (ISP) のNATルールによって変更されているか、IPアドレスがAlibaba Cloud CDNのアドレスプールにないため、戻り値が正確でない場合があります。 作業は慎重に行ってください。
この関数は、クライアントの管理部門コードを照会します。 この関数の詳細を次の表に示します。
項目説明
構文client_region()
パラメーターなし
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))
} 
戻り値指定されたクライアントの管理部門コードを文字列で返します。 行政部門コードの詳細については、「行政部門コード」をご参照ください。

client_isp

重要 注意: クライアントアドレスがインターネットサービスプロバイダ (ISP) のNATルールによって変更されているか、IPアドレスがAlibaba Cloud CDNのアドレスプールにないため、戻り値が正確でない場合があります。 作業は慎重に行ってください。
この関数は、クライアントのISPコードを照会します。 この関数の詳細を次の表に示します。
項目説明
構文client_isp()
パラメーターなし
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))
} 
戻り値指定されたクライアントのISPコードを文字列で返します。 ISPコードの詳細については、「ISPコード」をご参照ください。

ip_region

重要 注意: クライアントアドレスがインターネットサービスプロバイダ (ISP) のNATルールによって変更されているか、IPアドレスがAlibaba Cloud CDNのアドレスプールにないため、戻り値が正確でない場合があります。 作業は慎重に行ってください。
指定されたIPアドレスが属する市または州の行政区画コードを照会します。 この関数の詳細を次の表に示します。
項目説明
構文ip_region(ipaddr)
パラメーターipaddr: IPアドレスを10進表記で指定します。
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))
} 
戻り値指定されたIPアドレスが属する市または県の行政区画コードを文字列で返します。 行政部門コードの詳細については、「行政部門コード」をご参照ください。.

ip_isp

重要 注意: クライアントアドレスがインターネットサービスプロバイダ (ISP) のNATルールによって変更されているか、IPアドレスがAlibaba Cloud CDNのアドレスプールにないため、戻り値が正確でない場合があります。 作業は慎重に行ってください。
この関数は、指定されたIPアドレスのISPコードを照会します。 この関数の詳細を次の表に示します。
項目説明
構文ip_isp(ipaddr)
パラメーターipaddr: IPアドレスを10進表記で指定します。
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))
} 
戻り値指定されたIPアドレスのISPコードを文字列で返します。 ISPコードの詳細については、「ISPコード」をごください。

req_uri

この機能の使用法のノート:
  • patternパラメーターがリクエストに含まれていない場合、リクエストのURI (パラメーターを除く) が返されます。
  • リクエストにpatternパラメーターが含まれている場合、リクエストのURIと一致条件が比較されます。
この関数の詳細を次の表に示します。
項目説明
構文req_uri([パターン])
パラメーターパターン: マッチ条件との比較。 次の一致タイプがサポートされています。
  • ブルートフォースアルゴリズム: ブルートフォースアルゴリズムに基づいて値を比較します。 これはデフォルトの一致タイプです。
  • 正規表現: re: で指定された先頭の正規表現に基づいて値を比較します。
# req_uri
say(concat('req_uri: ', req_uri()))
if req_uri('/path1/path2') {
    say('req_uri: プレーンマッチ ')
}
if req_uri('re:/path[0-9]/path[0-9]') {
    say('req_uri: regex match ')
} 
戻り値
  • patternパラメーターがリクエストに含まれていない場合、リクエストURIが返されます。 データ型: 文字列。
  • patternパラメーターがリクエストに含まれており、リクエストが一致条件に一致する場合、trueの値が返されます。 一致する条件がない場合、falseの値が返されます。
この例では、次の値が返されます
。Request: /path1/path2?mode=ip
応答:
req_uri: /path1/path2
req_uri: プレーンマッチ
req_uri: 正規表現の試合 

req_uri_basename

この機能の使用法のノート:
  • patternパラメーターがリクエストに含まれていない場合は、リクエストURIのファイル名を返します。
  • リクエストにpatternパラメーターが含まれている場合、リクエストURIのファイル名と一致条件を比較します。
サンプルファイル名:
  • 例1: /document_detail/30360.htmlの場合、ファイル名は30360です。
  • 例2: /M604/guopei_mp4/ZYJY2017BJGL0101/2-1_g.mp4の場合、ファイル名は2-1_gです。
  • 例3: /tarball/foo.tar.bz2の場合、ファイル名はfooです。
この関数の詳細を次の表に示します。
項目説明
構文req_uri_basename([パターン])
パラメーターパターン: マッチ条件との比較。 次の一致タイプがサポートされています。
  • ブルートフォースアルゴリズム: ブルートフォースアルゴリズムに基づいて値を比較します。 これはデフォルトの一致タイプです。
  • 正規表現: re: で指定された先頭の正規表現に基づいて値を比較します。
# req_uri_basename
basename = req_uri_basename()
say(concat('req_uri_basename: ', basename, ', len(basename)))
if req_uri_basename('foo') {
    say('req_uri_basename: プレーンマッチ ')
}
if req_uri_basename('re:^ f.* ') {
    say('req_uri_basename: regex match ')
} 
戻り値
  • patternパラメーターがリクエストに含まれていない場合は、リクエストURIのファイル名を返します。 データ型: 文字列。
  • patternパラメーターがリクエストに含まれており、リクエストが一致条件に一致する場合、trueの値が返されます。 一致する条件がない場合、falseの値が返されます。
この例では、次の値が返されます
。Request: /path1/path2/foo.tar.bz2
応答:
req_uri_basename: foo 3
req_uri_basename: プレーンマッチ
req_uri_basename: regex match 

req_uri_ext

この機能の使用法のノート:
  • patternパラメーターがリクエストに含まれていない場合は、リクエストURIの拡張子を返します。
  • patternパラメーターがリクエストに含まれている場合、リクエストURIの拡張子を一致条件と比較します。
拡張のサンプル:
  • 例1: /document_detail/30360.htmlの場合、拡張子は. htmlです。
  • 例2: /M604/guopei_mp4/ZYJY2017BJGL0101/2-1_g.mp4の場合、拡張子は mp4。
  • 例3: /tarball/foo.tar.bz2の場合、拡張子は tar.bz2です。
この関数の詳細を次の表に示します。
項目説明
構文req_uri_ext([パターン])
パラメーターパターン: マッチ条件との比較。 次の一致タイプがサポートされています。
  • ブルートフォースアルゴリズム: ブルートフォースアルゴリズムに基づいて値を比較します。 これはデフォルトの一致タイプです。
  • 正規表現: re: で指定された先頭の正規表現に基づいて値を比較します。
# 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: プレーンマッチ ')
}
if req_uri_ext('re:\.tar\.bz[0-2]') {
    say('req_uri_ext: regex match ')
} 
戻り値
  • patternパラメーターがリクエストに含まれていない場合は、リクエストURIの拡張子を返します。 データ型: 文字列。
  • patternパラメーターがリクエストに含まれており、リクエストが一致条件に一致する場合、trueの値が返されます。 一致する条件がない場合、falseの値が返されます。
この例では、次の値が返されます
。Request: /path1/path2/foo.tar.bz2
応答:
req_uri_ext: 。tar.bz2 8
req_uri_ext: プレーンマッチ
req_uri_ext: 正規表現マッチ 

req_uri_seg

この機能に関する注意事項:
  • 応答パラメータでは、セグメントはスラッシュ (/) で区切られます。
    • idxパラメーターがリクエストに含まれていない場合は、すべてのセグメントを返します。
    • idxパラメーターがリクエストに含まれている場合、指定されたインデックスに続くセグメント (インデックスを含む) を返します。
  • 段落のインデックス: インデックスは1から始まり、段落が追加されると左端のインデックスから増加します。
  • Paragraph limit: 段落には最大128文字を含めることができます。 この制限を超える文字は削除されます。
この関数の詳細を次の表に示します。
項目説明
構文req_uri_seg([idx])
パラメーターidx: 開始インデックスを指定します。 このパラメーターはオプションです。
# req_uri_seg
def echo_each(k, v, u) {
    say(concat(get(u, 'msg'), ' : segs[', k, ']=', v))
}
# すべてのセグメントをフェッチする
segs = req_uri_seg()
foreach(segs, echo_each, ['msg'='req_uri_seg()'])
# 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)))
} 
戻り値データ型: dictionary。 関連する段落が含まれています。
説明 関数が指定されたインデックスに基づいて返された辞書から段落を取得すると、その段落が空であるかどうかがチェックされます。
この例では、次の値が返されます
。Request: /path1/path2/path3/path4?mode=req2
応答:
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

この関数は、指定されたパラメーターの値を照会します。 リクエストにpatternパラメーターが含まれている場合、指定されたパラメーターの値と一致条件が比較されます。 この関数の詳細を次の表に示します。
項目説明
構文req_uri_arg(name, [パターン])
パラメーター
  • name: パラメータの名前。
  • パターン: マッチ条件との比較。 次の一致タイプがサポートされています。
    • ブルートフォースアルゴリズム: ブルートフォースアルゴリズムに基づいて値を比較します。 これはデフォルトの一致タイプです。
    • 正規表現: re: で指定された先頭の正規表現に基づいて値を比較します。
# req_uri_arg
uid = req_uri_arg('uid')
if uid {
    say(concat('found uid ', uid))
} else {
    言う ('not found uid ')
}
uid_chk = req_uri_arg('uid', '058334')
if uid_chk {
    言う ('チェックuid ok. プレーンモード ')
} else {
    言う ('チェックuidは失敗します。 プレーンモード ')
}
uid_chk = req_uri_arg('uid', 're:[0-9]+ ')
if uid_chk {
    言う ('チェックuid ok. 正規表現モード ')
} else {
    言う ('チェックuidは失敗します。 正規表現モード ')
} 
戻り値
  • patternパラメーターがリクエストに含まれていない場合
    • 指定されたパラメーターはexists: nameパラメーターで指定されたパラメーターの値を文字列で返します。
    • 指定されたパラメーターは存在しません: falseの値を返します。
  • リクエストにpatternパラメーターが含まれている場合
    • 指定されたパラメーターexists: 値が一致条件と一致する場合、trueの値を返します。 それ以外の場合、falseの値が返されます。
    • 指定されたパラメーターは存在しません: falseの値を返します。
この例では、次の値が返されます
。Request: /path1/path2/path3/path4?mode=req4&uid
応答:
uidが見つかりません
uidのチェックが失敗します。 プレーンモード
uidのチェックが失敗します。 regexモード

リクエスト: /path1/path2/path3/path4? モード=req4&uid=
応答:
uidが見つかりました
uidのチェックが失敗します。 プレーンモード
uidのチェックが失敗します。 regexモード

リクエスト: /path1/path2/path3/path4? モード=req4&uid=12345
応答:
found uid 12345
uidのチェックが失敗します。 プレーンモード
uidをチェックしてください。 正規表現モード 

req_uri_query_string

この機能の使用法のノート:
  • リクエストにpatternパラメーターが含まれていない場合は、クエスチョンマーク (?) を除くリクエスト内のパラメーターが返されます。
  • パターンパラメータがリクエストに含まれている場合、リクエスト内のパラメータが一致条件と比較されます。
この関数の詳細を次の表に示します。
項目説明
構文req_uri_query_string([パターン])
パラメーターパターン: マッチ条件との比較。 次の一致タイプがサポートされています。
  • ブルートフォースアルゴリズム: ブルートフォースアルゴリズムに基づいて値を比較します。 これはデフォルトの一致タイプです。
  • 正規表現: re: で指定された先頭の正規表現に基づいて値を比較します。
# 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. プレーンモード ')
} else {
    say('check uriクエリ文字列は失敗します。 プレーンモード ')
}
if req_uri_query_string('re:mode=[0-9a-z]+ ') {
    say('check uri query string ok. 正規表現モード ')
} else {
    say('check uriクエリ文字列は失敗します。 正規表現モード ')
} 
戻り値
  • パターンパラメーターがリクエストに含まれていない場合は、リクエストのパラメーターを返します。 データ型: 文字列。
  • patternパラメーターがリクエストに含まれており、リクエストが一致条件に一致する場合、trueの値が返されます。 一致する条件がない場合、falseの値が返されます。
この例では、次の値が返されます
。Request: /path1/path2/path3/path4?mode=req5&token=34Deasd#243
応答:
req_uri_query_string: mode=req5&token=34Deasd
uriクエリ文字列が失敗します。 プレーンモード
uriクエリ文字列をチェックしてください。 正規表現モード 

req_scheme

この機能の使用法のノート:
  • パターンパラメーターがリクエストに含まれていない場合は、リクエストスキームを返します。
  • リクエストにpatternパラメーターが含まれている場合、リクエストスキームと一致条件を比較します。
この関数の詳細を次の表に示します。
項目説明
構文req_scheme([パターン])
パラメーターパターン: マッチ条件との比較。 次の一致タイプがサポートされています。
  • ブルートフォースアルゴリズム: ブルートフォースアルゴリズムに基づいて値を比較します。 これはデフォルトの一致タイプです。
  • 正規表現: re: で指定された先頭の正規表現に基づいて値を比較します。
# req_scheme
say(concat('req_scheme: ', req_scheme()))
if req_scheme('https') {
    言う ('スキームをチェックok。 プレーンモード ')
} else {
    say('チェックスキームは失敗します。 プレーンモード ')
}
if req_scheme('re:https?') {
    言う ('スキームをチェックok。 正規表現モード ')
} else {
    say('チェックスキームは失敗します。 正規表現モード ')
} 
戻り値
  • パターンパラメーターがリクエストに含まれていない場合は、リクエストスキームを返します。 データ型: 文字列。
  • patternパラメーターがリクエストに含まれており、リクエストが一致条件に一致する場合、trueの値が返されます。 一致する条件がない場合、falseの値が返されます。
この例では、次の値が返されます
。Request: http:// xx ..
req_scheme: http
チェックスキームが失敗します。 プレーンモード
チェックスキームok。 正規表現モード 

req_method

この機能に関する注意事項:
  • patternパラメーターがリクエストに含まれていない場合は、リクエストメソッドを返します。
  • patternパラメーターがリクエストに含まれている場合、リクエストメソッドと一致条件を比較します。
この関数の詳細を次の表に示します。
項目説明
構文req_method([パターン])
パラメーターパターン: マッチ条件との比較。 次の一致タイプがサポートされています。
  • ブルートフォースアルゴリズム: ブルートフォースアルゴリズムに基づいて値を比較します。 これはデフォルトの一致タイプです。
  • 正規表現: re: で指定された先頭の正規表現に基づいて値を比較します。
# req_method
say(concat('req_method: ', req_method()))
if req_method('GET') {
    言う ('チェック方法ok。 プレーンモード ')
} else {
    say('checkメソッドは失敗します。 プレーンモード ')
}
if req_method('re:( GET | POST)') {
    言う ('チェック方法ok。 正規表現モード ')
} else {
    say('checkメソッドは失敗します。 正規表現モード ')
} 
戻り値
  • patternパラメーターがリクエストに含まれていない場合は、リクエストメソッドを返します。 データ型: 文字列。
  • patternパラメーターがリクエストに含まれており、リクエストが一致条件に一致する場合、trueの値が返されます。 一致する条件がない場合、falseの値が返されます。
この例では、次の値が返されます。
Request: POST /xxxx/xxx
応答:
req_method: POST
チェックメソッドは失敗します。 プレーンモード
チェック方法ok。 正規表現モード 

req_host

この機能に関する注意事項:
  • patternパラメーターがリクエストに含まれていない場合は、Hostリクエストヘッダーの値を返します。
  • リクエストにpatternパラメーターが含まれている場合、Hostリクエストヘッダーの値を一致条件と比較します。
この関数の詳細を次の表に示します。
項目説明
構文req_host([パターン])
パラメーターパターン: マッチ条件との比較。 次の一致タイプがサポートされています。
  • ブルートフォースアルゴリズム: ブルートフォースアルゴリズムに基づいて値を比較します。 これはデフォルトの一致タイプです。
  • 正規表現: re: で指定された先頭の正規表現に基づいて値を比較します。
# req_host
say(concat('req_host: ', req_host()))
if req_host('image .developer.aliyundoc.com ') {
    言う ('ホストをチェックok。 プレーンモード ')
} else {
    say('check host fail. プレーンモード ')
}
if req_host('re:.+\.y\.z\.com') {
    言う ('ホストをチェックok。 正規表現モード ')
} else {
    say('check host fail. 正規表現モード ')
} 
戻り値
  • patternパラメーターがリクエストに含まれていない場合は、Hostリクエストヘッダーの値を返します。 データ型: 文字列。
  • patternパラメーターがリクエストに含まれており、リクエストが一致条件に一致する場合、trueの値が返されます。 一致する条件がない場合、falseの値が返されます。
この例では、次の値が返されます
。リクエスト: ホスト: image.developer.aliyundoc.com
応答:
req_host: image.developer.aliyundoc.com
check host fail. プレーンモード
ホストをチェックしてください。 正規表現モード 

req_user_agent

この機能の使用法のノート:
  • リクエストにpatternパラメーターが含まれていない場合は、User-Agentリクエストヘッダーの値を返します。
  • リクエストにpatternパラメーターが含まれている場合、User-Agentリクエストヘッダーの値と一致条件を比較します。
この関数の詳細を次の表に示します。
項目説明
構文req_user_agent([パターン])
パラメーターパターン: マッチ条件との比較。 次の一致タイプがサポートされています。
  • ブルートフォースアルゴリズム: ブルートフォースアルゴリズムに基づいて値を比較します。 これはデフォルトの一致タイプです。
  • 正規表現: re: で指定された先頭の正規表現に基づいて値を比較します。
# req_user_agent
say(concat('req_user_agent: ', req_user_agent()))
if req_user_agent('Mozilla') {
    say('check user_agent ok. プレーンモード ')
} else {
    say('check user_agent fail. プレーンモード ')
}
if req_user_agent('re:^ Mozilla') {
    say('check user_agent ok. 正規表現モード ')
} else {
    say('check user_agent fail. 正規表現モード ')
} 
戻り値
  • リクエストにpatternパラメーターが含まれていない場合は、User-Agentリクエストヘッダーの値を返します。 データ型: 文字列。
  • patternパラメーターがリクエストに含まれており、リクエストが一致条件に一致する場合、trueの値が返されます。 一致する条件がない場合、falseの値が返されます。
この例では、次の値が返されます
。Request: User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
応答:
req_user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
user_agentに失敗します。 プレーンモード
user_agent okをチェックします。 正規表現モード 

req_referer

この機能に関する注意事項:
  • リクエストにpatternパラメーターが含まれていない場合は、Refererリクエストヘッダーの値を返します。
  • リクエストにpatternパラメーターが含まれている場合、Refererリクエストヘッダーの値を一致条件と比較します。
この関数の詳細を次の表に示します。
項目説明
構文req_referer([パターン])
パラメーターパターン: マッチ条件との比較。 次の一致タイプがサポートされています。
  • ブルートフォースアルゴリズム: ブルートフォースアルゴリズムに基づいて値を比較します。 これはデフォルトの一致タイプです。
  • 正規表現: re: で指定された先頭の正規表現に基づいて値を比較します。
# req_referer
say(concat('req_referer: ', req_referer()))
if req_referer('https:// example.aliyundoc.com/******00003') {
    言う ('リファラーをチェックok。 プレーンモード ')
} else {
    言う ('リファラーのチェックは失敗します。 プレーンモード ')
}
if req_referer (re:https:// foo\.bar\.cn/\* +[0-9]+ ') {
    言う ('リファラーをチェックok。 正規表現モード ')
} else {
    言う ('リファラーのチェックは失敗します。 正規表現モード ')
} 
戻り値
  • リクエストにpatternパラメーターが含まれていない場合は、Refererリクエストヘッダーの値を返します。 データ型: 文字列。
  • patternパラメーターがリクエストに含まれており、リクエストが一致条件に一致する場合、trueの値が返されます。 一致する条件がない場合、falseの値が返されます。
この例では、次の値が返されます
。リクエスト: リファラー: https://example.aliyundoc.com/****** 00003
応答:
req_referer: https://example.aliyundoc.com/****** 00003
リファラーをチェックしてください。 プレーンモード
リファラーをチェックしてください。 正規表現モード 

req_cookie

この関数は、指定されたcookieの値を照会します。 リクエストにpatternパラメーターが含まれている場合、指定されたcookieの値が一致条件と比較されます。 この関数の詳細を次の表に示します。
項目説明
構文req_cookie(name, [パターン])
パラメーター
  • name: cookieの名前を指定します。
  • パターン: マッチ条件との比較。 次の一致タイプがサポートされています。
    • ブルートフォースアルゴリズム: ブルートフォースアルゴリズムに基づいて値を比較します。 これはデフォルトの一致タイプです。
    • 正規表現: re: で指定された先頭の正規表現に基づいて値を比較します。
# 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 {
    言う ('チェッククッキーuid ok. プレーンモード ')
} else {
    say('check cookie uid fail. プレーンモード ')
}
uid_chk = req_cookie('uid', 're:^[0-9]+ ')
if uid_chk {
    言う ('チェッククッキーuid ok. 正規表現モード ')
} else {
    say('check cookie uid fail. 正規表現モード ')
} 
戻り値
  • patternパラメーターがリクエストに含まれていない場合
    • 指定されたcookie exists: nameパラメーターで指定されたcookieの値を文字列で返します。
    • 指定されたパラメーターは存在しません: falseの値を返します。
  • リクエストにpatternパラメーターが含まれている場合
    • 指定されたパラメーターexists: 値が一致条件と一致する場合、trueの値を返します。 それ以外の場合、falseの値が返されます。
    • 指定されたパラメーターは存在しません: falseの値を返します。
この例では、次の値が返されます
。Request: Cookie: uid=123456; token=value2
応答:
found cookie uid 123456
check cookie uid fail. プレーンモード
cookie uidをチェックしてください。 正規表現モード 

req_first_x_forwarded

この機能に関する注意事項:
  • パターンパラメーターがリクエストに含まれていない場合、X-Forwarded-Forリクエストヘッダーの最初のアドレスを返します。
  • パターンパラメーターがリクエストに含まれている場合、X-Forwarded-Forリクエストヘッダーの最初のアドレスを一致条件と比較します。
この関数の詳細を次の表に示します。
項目説明
構文req_first_x_forwarded_addr([パターン])
パラメーターパターン: マッチ条件との比較。 次の一致タイプがサポートされています。
  • ブルートフォースアルゴリズム: ブルートフォースアルゴリズムに基づいて値を比較します。 これはデフォルトの一致タイプです。
  • 正規表現: re: で指定された先頭の正規表現に基づいて値を比較します。
# 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. プレーンモード ')
} else {
    say('check first_x_forwarded fail) プレーンモード ')
}
if req_first_x_forwarded('re:1.1.1.[0-9]') {
    say('check first_x_forwarded ok. 正規表現モード ')
} else {
    say('check first_x_forwarded fail) 正規表現モード ')
} 
戻り値
  • パターンパラメーターがリクエストに含まれていない場合、X-Forwarded-Forリクエストヘッダーの最初のアドレスを返します。 データ型: 文字列。
  • patternパラメーターがリクエストに含まれており、リクエストが一致条件に一致する場合、trueの値が返されます。 一致する条件がない場合、falseの値が返されます。
この例では、次の値が返されます。
Request: X-Forwarded-For: 1.1.1.1, 10.10.10.10, 172.16.0.1
応答:
req_first_x_forwarded: 1.1.1.1
first_x_forwarded okをチェックします。 プレーンモード
first_x_forwarded okをチェックします。 正規表現モード 

req_header

この関数は、指定されたリクエストヘッダーの値を照会します。 リクエストにpatternパラメーターが含まれている場合、指定されたリクエストヘッダーの値が一致条件と比較されます。 この関数の詳細を次の表に示します。
項目説明
構文req_header(name, [パターン])
パラメーター
  • name: リクエストヘッダーの名前を指定します。

    リクエストヘッダーのハイフン (-) をアンダースコア (_) に置き換えます。 たとえば、X-USER-IDをx_user_idに変更する必要があります。

  • パターン: マッチ条件との比較。 次の一致タイプがサポートされています。
    • ブルートフォースアルゴリズム: ブルートフォースアルゴリズムに基づいて値を比較します。 これはデフォルトの一致タイプです。
    • 正規表現: re: で指定された先頭の正規表現に基づいて値を比較します。
# 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. プレーンモード ')
} else {
    say('check header x-uid fail. プレーンモード ')
}
uid_chk = req_header('x_uid', 're:es [a-z]+ ')
if uid_chk {
    say('check header x-uid ok. 正規表現モード ')
} else {
    say('check header x-uid fail. 正規表現モード ')
} 
戻り値
  • patternパラメーターがリクエストに含まれていない場合
    • 指定されたリクエストヘッダーが存在します: 文字列のnameパラメーターで指定された指定されたリクエストヘッダーの値を返します。
    • 指定されたパラメーターは存在しません: falseの値を返します。
  • リクエストにpatternパラメーターが含まれている場合
    • 指定されたパラメーターexists: 値が一致条件と一致する場合、trueの値を返します。 それ以外の場合、falseの値が返されます。
    • 指定されたパラメーターは存在しません: falseの値を返します。
この例では、次の値が返されます
。Request: X-UID: es developer
応答:
found header x-uid esデベロッパー
ヘッダーx-uid okをチェックします。 プレーンモード
ヘッダーx-uid okをチェックします。 正規表現モード 

req_id

この関数は、要求のEagle Eye IDを照会します。 各Eagle Eye IDは、要求を一意に識別する。 この関数の詳細を次の表に示します。
項目説明
構文req_id()
パラメーターなし
# req_id
say(concat('req_id: ', req_id())) 
戻り値リクエストIDを文字列で返します。 この例では、リクエストのIDはreq_id: 6451c43d1581581589008941100 0eです。