NetFlows では、Cloudflare のエッジルーターに届くバイトとパケットを確認できます。HTTP リクエストは、OSI モデル ↗ でその1つ上の層です。HTTP リクエストでは、Cloudflare の CDN ↗ が配信するサイトに届いた、エンドユーザーからの完結した HTTP リクエストを調べます。
Radar の Adoption and Usage ↗ セクションにあるチャートの多くは、このデータソースから来ています。
これらのエンドポイントは、おおまかに次のように分かれます。
timeseries: 一連の指標の時系列です。たとえば IP バージョンを見る場合、IPv4 の時系列と IPv6 の時系列を表示します。summary: 指定した期間における一連の指標の要約です。たとえば、その期間の HTTP トラフィック全体に対する IPv4 トラフィックの割合です。top: 特定の指標の導入率で並べた、上位ロケーションまたは 自律システム ↗(AS)の一覧です。たとえば、モバイル端末トラフィックの上位ロケーション(そのロケーションの総トラフィックに対するモバイル比率が高い場所)です。
この例では、ボットトラフィック の有無を分けて、世界全体のデバイスタイプ別トラフィックを取得します。human 系列のパラメーターは name=human&botClass=LIKELY_HUMAN&dateRange=1d です。bot 系列のパラメーターは name=bot&botClass=LIKELY_AUTOMATED&dateRange=1d です。
curl "https://api.cloudflare.com/client/v4/radar/http/timeseries/device_type?name=human&botClass=LIKELY_HUMAN&dateRange=1d&name=bot&botClass=LIKELY_AUTOMATED&dateRange=1d&format=json&aggInterval=1h" \
--header "Authorization: Bearer <API_TOKEN>"省略したレスポンスは次のとおりです。
{
"success": true,
"errors": [],
"result": {
"human": {
"timestamps": ["2022-11-03T13:00:00Z", "2022-11-03T14:00:00Z", ".."],
"mobile": ["52.5532", "52.146628", ".."],
"desktop": ["47.394791", "47.800731", ".."],
"other": ["0.052009", "0.052642", ".."]
},
"bot": {
"timestamps": ["2022-11-03T13:00:00Z", "2022-11-03T14:00:00Z", ".."],
"desktop": ["83.833892", "84.017711", ".."],
"mobile": ["16.156748", "15.969936", ".."],
"other": ["0.00936", "0.012353", ".."]
},
"meta": {
"dateRange": {
"startTime": "2022-11-03T13:00:00Z",
"endTime": "2022-11-04T13:00:00Z"
},
"normalization": "PERCENTAGE"
}
}
}人が生成したトラフィックでは、ボット由来のトラフィックと比べて、モバイル端末の割合が大きくなりやすいです。
詳細は デバイスタイプの時系列を取得する を参照してください。
先の例のような1時間ごとの内訳ではなく、期間全体のデバイスタイプ内訳の要約を求めることもできます。
curl "https://api.cloudflare.com/client/v4/radar/http/summary/device_type?name=human&botClass=LIKELY_HUMAN&dateRange=1d&name=bot&botClass=LIKELY_AUTOMATED&dateRange=1d&format=json&aggInterval=1h" \
--header "Authorization: Bearer <API_TOKEN>"省略したレスポンスは次のとおりです。
{
"success": true,
"errors": [],
"result": {
"human": {
"mobile": "54.967243",
"desktop": "44.974006",
"other": "0.058751"
},
"bot": {
"desktop": "83.275452",
"mobile": "16.707455",
"other": "0.017093"
}
}
}詳細は、このエンドポイントの API リファレンス を参照してください。
次の例では、ボットの有無を分けて、世界全体の IP バージョン別トラフィック内訳を調べます。
curl "https://api.cloudflare.com/client/v4/radar/http/summary/ip_version?name=human&botClass=LIKELY_HUMAN&dateRange=1d&name=bot&botClass=LIKELY_AUTOMATED&dateRange=1d&format=json&aggInterval=1h" \
--header "Authorization: Bearer <API_TOKEN>"返ってくる内容は次のとおりです。
{
"success": true,
"errors": [],
"result": {
"human": {
"IPv4": "76.213647",
"IPv6": "23.786353"
},
"bot": {
"IPv4": "91.492032",
"IPv6": "8.507968"
}
}
}ボットは IPv4 アドレスを使う傾向があります。
自分の ISP の IPv6 導入状況も確認できます。ISP の自律システム番号(ASN)が分かれば、asn パラメーターで問い合わせられます。ほかのパラメーターは API リファレンス を参照してください。
ISP の ASN が分からない場合は、Radar ↗ で調べられます。
次の例では、直近 28 日間で IPv6 ↗ の導入率が高いロケーションを調べます。
curl "https://api.cloudflare.com/client/v4/radar/http/top/locations/ip_version/IPv6?name=ipv6&botClass=LIKELY_HUMAN&dateRange=28d&format=json&limit=5" \
--header "Authorization: Bearer <API_TOKEN>"{
"success": true,
"errors": [],
"result": {
"ipv6": [
{
"clientCountryAlpha2": "IN",
"clientCountryName": "India",
"value": "50.612747"
},
{
"clientCountryAlpha2": "MY",
"clientCountryName": "Malaysia",
"value": "46.233654"
},
{
"clientCountryAlpha2": "UY",
"clientCountryName": "Uruguay",
"value": "39.796762"
},
{
"clientCountryAlpha2": "LK",
"clientCountryName": "Sri Lanka",
"value": "39.709355"
},
{
"clientCountryAlpha2": "VN",
"clientCountryName": "Vietnam",
"value": "39.1514"
}
]
}
}返ってきたデータでは、インドが IPv6 の導入率で先頭です。
詳細は、このエンドポイントの API リファレンス を参照してください。
緩和された HTTP リクエストの詳細は、アプリケーション層攻撃 を参照してください。