From b3ece309b650f0d4da8ac7bd69cd757813c8716b Mon Sep 17 00:00:00 2001 From: James Rosewell Date: Tue, 3 Nov 2026 21:05:09 +0000 Subject: [PATCH 1/5] Grab the Go IP Intelligence examples by their names in 51degrees-go (#285) * Grab the Go IP Intelligence examples by their names in the Go repository * Grab the Go IP Intelligence examples by their names in the Go repository * Grab the Go IP Intelligence examples by their names in the Go repository * Grab the Go IP Intelligence examples by their names in the Go repository --- src/ipintelligence/examples/datafileupdates.md | 2 +- src/ipintelligence/examples/gettingstartedconsole/onpremise.md | 2 +- src/ipintelligence/examples/offlineprocessing.md | 2 +- src/ipintelligence/examples/performance.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ipintelligence/examples/datafileupdates.md b/src/ipintelligence/examples/datafileupdates.md index 52426fd83c..e2d4e41081 100644 --- a/src/ipintelligence/examples/datafileupdates.md +++ b/src/ipintelligence/examples/datafileupdates.md @@ -3,7 +3,7 @@ @startsnippets @grabexample{ip-intelligence-dotnet,_on_premise_2_update_data_file-_console_2_program_8cs,C#} @grabexample{ip-intelligence-java,console_2_update_data_file_8java,Java} -@grabexample{ip-intelligence-go,examples_2onpremise_2update_polling_interval_8go,Go} +@grabexample{ip-intelligence-go,update_polling_interval_2main_8go,Go} @grabexample{rust,ipi-onprem-update-data-file,Rust} @grabbedexample @endsnippets diff --git a/src/ipintelligence/examples/gettingstartedconsole/onpremise.md b/src/ipintelligence/examples/gettingstartedconsole/onpremise.md index b84283d81c..92ae137b0f 100644 --- a/src/ipintelligence/examples/gettingstartedconsole/onpremise.md +++ b/src/ipintelligence/examples/gettingstartedconsole/onpremise.md @@ -18,7 +18,7 @@ You can mix and match elements from different examples in order to match your us @grabexample{ip-intelligence-cxx,_ip_intelligence_2_getting_started_8cpp,C++} @grabexample{ip-intelligence-dotnet,_on_premise_2_getting_started-_console_2_program_8cs,C#} @grabexample{ip-intelligence-java,console_2_getting_started_on_prem_8java,Java} -@grabexample{ip-intelligence-go,examples_2onpremise_2getting_started_8go,Go} +@grabexample{ip-intelligence-go,getting_started_2main_8go,Go} @grabexample{rust,ipi-onprem-getting-started,Rust} @grabbedexample @endsnippets diff --git a/src/ipintelligence/examples/offlineprocessing.md b/src/ipintelligence/examples/offlineprocessing.md index 788b8a5003..d7e05d4f58 100644 --- a/src/ipintelligence/examples/offlineprocessing.md +++ b/src/ipintelligence/examples/offlineprocessing.md @@ -4,7 +4,7 @@ @grabexample{ip-intelligence-cxx,_ip_intelligence_2_offline_processing_8c,C} @grabexample{ip-intelligence-dotnet,_on_premise_2_offline_processing-_console_2_program_8cs,C#} @grabexample{ip-intelligence-java,console_2_offline_processing_8java,Java} -@grabexample{ip-intelligence-go,examples_2onpremise_2offline_processing_8go,Go} +@grabexample{ip-intelligence-go,offline_processing_2main_8go,Go} @grabexample{rust,ipi-onprem-offline-processing,Rust} @grabbedexample @endsnippets diff --git a/src/ipintelligence/examples/performance.md b/src/ipintelligence/examples/performance.md index 80cbf98603..3bca4e5f5d 100644 --- a/src/ipintelligence/examples/performance.md +++ b/src/ipintelligence/examples/performance.md @@ -8,7 +8,7 @@ can make on your hardware. Our own results from five machines are in the @grabexample{ip-intelligence-cxx,_ip_intelligence_2_performance_8c,C} @grabexample{ip-intelligence-dotnet,_performance-_console_2_program_8cs,C#} @grabexample{ip-intelligence-java,_performance_benchmark_8java,Java} -@grabexample{ip-intelligence-go,examples_2onpremise_2performance_8go,Go} +@grabexample{ip-intelligence-go,performance_2main_8go,Go} @grabexample{rust,ipi-onprem-performance,Rust} @grabbedexample @endsnippets From 3214916c94e98b442eb6555dc70585fdafa8a829 Mon Sep 17 00:00:00 2001 From: James Rosewell Date: Tue, 3 Nov 2026 23:34:33 +0000 Subject: [PATCH 2/5] Show the Java benchmarks from 51degrees-java and restore the .NET device detection graph (#287) --- src/productsummaries/nightlybenchmarks.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/productsummaries/nightlybenchmarks.md b/src/productsummaries/nightlybenchmarks.md index 28b97438c4..ef12d1b1c7 100644 --- a/src/productsummaries/nightlybenchmarks.md +++ b/src/productsummaries/nightlybenchmarks.md @@ -3,8 +3,8 @@ | API / Product |
Device Detection
|
IP Intelligence
| |---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------| | C/C++ | ![dd-cxx](https://raw.githubusercontent.com/51Degrees/51degrees-cxx/gh-images/perf-graph-Ubuntu_x64_Release-DetectionsPerSecond-latest.png) | ![ip-cxx](https://raw.githubusercontent.com/51Degrees/51degrees-cxx/gh-images/perf-graph-Ubuntu_x64_Release-LookupsPerSecond-latest.png) | -| .NET | ![dd-dotnet](https://raw.githubusercontent.com/51Degrees/51degrees-dotnet/gh-images/perf-graph-Ubuntu_x64_Release-DetectionsPerSecond-latest.png) | ![ip-dotnet](https://raw.githubusercontent.com/51Degrees/ip-intelligence-dotnet/gh-images/perf-graph-Ubuntu_x64_Release-DetectionsPerSecond-latest.png) | -| Java | ![dd-java](https://raw.githubusercontent.com/51Degrees/device-detection-java/gh-images/perf-graph-Ubuntu_Java_17-DetectionsPerSecond-latest.png) | ![ip-java](https://raw.githubusercontent.com/51Degrees/ip-intelligence-java/gh-images/perf-graph-Ubuntu_Java_8-DetectionsPerSecond-latest.png) | +| .NET | ![dd-dotnet](https://raw.githubusercontent.com/51Degrees/device-detection-dotnet/gh-images/perf-graph-Ubuntu_x64_Release-DetectionsPerSecond-latest.png) | ![ip-dotnet](https://raw.githubusercontent.com/51Degrees/ip-intelligence-dotnet/gh-images/perf-graph-Ubuntu_x64_Release-DetectionsPerSecond-latest.png) | +| Java | ![dd-java](https://raw.githubusercontent.com/51Degrees/51degrees-java/gh-images/perf-graph-Ubuntu_Java_17-DeviceDetection_DetectionsPerSecond-latest.png) | ![ip-java](https://raw.githubusercontent.com/51Degrees/51degrees-java/gh-images/perf-graph-Ubuntu_Java_8-IpIntelligence_DetectionsPerSecond-latest.png) | | Go | ![dd-go](https://raw.githubusercontent.com/51Degrees/51degrees-go/gh-images/perf-graph-Ubuntu_Go_1.24-DetectionsPerSecond-latest.png) | ![ip-go](https://raw.githubusercontent.com/51Degrees/51degrees-go/gh-images/perf-graph-Ubuntu_Go_1.24-LookupsPerSecond-latest.png) | | Node.js | ![dd-node](https://raw.githubusercontent.com/51Degrees/51degrees-node/gh-images/perf-graph-Ubuntu_Node_24-DetectionsPerSecond-latest.png) | | | Python | ![dd-python](https://raw.githubusercontent.com/51Degrees/51degrees-python/gh-images/perf-graph-Ubuntu_Python_3.13-DetectionsPerSecond-latest.png) | | From 6ba06897a7c52ac561b85b2973013f20c3e4d3db Mon Sep 17 00:00:00 2001 From: James Rosewell Date: Wed, 4 Nov 2026 21:46:05 +0000 Subject: [PATCH 3/5] Point the data file steps at the data repository (#288) --- src/devicedetection/cloudtoonpremise.md | 2 +- .../otherintegrations/nginx.md | 6 +- src/devicedetection/quickstart.md | 55 +++++++++---------- src/snippets/example-require-datafile.txt | 12 ++-- 4 files changed, 36 insertions(+), 39 deletions(-) diff --git a/src/devicedetection/cloudtoonpremise.md b/src/devicedetection/cloudtoonpremise.md index 58e0760411..cead48cbef 100644 --- a/src/devicedetection/cloudtoonpremise.md +++ b/src/devicedetection/cloudtoonpremise.md @@ -26,7 +26,7 @@ On-premise deployment works better when you need: ## Step 1: Get License and Data File **For testing:** -- Download the free Lite data file from [GitHub](https://github.com/51degrees/device-detection-data) +- Download the free Lite data file with the scripts in the [data](https://github.com/51Degrees/data) repository on GitHub - No License Key required, but limited device properties **For production:** diff --git a/src/devicedetection/otherintegrations/nginx.md b/src/devicedetection/otherintegrations/nginx.md index 3379407c01..f206be05a5 100644 --- a/src/devicedetection/otherintegrations/nginx.md +++ b/src/devicedetection/otherintegrations/nginx.md @@ -32,7 +32,7 @@ make install STATIC_BUILD=1 ```
-Finally, run the 51Degrees tests with the default 51Degrees Lite data file included in the `device-detection-cxx\device-detection-data` directory. Make sure to build the module with `make install` command as the tests do not work on a static build. +Finally, run the 51Degrees tests with the default 51Degrees Lite data file, which the tests read from the `cxx/data/device-detection` folder. Download it first by running `sh cxx/data/get-data-files.sh 51Degrees-LiteV4.1.hash` from the repository root. The script is part of the [data](https://github.com/51Degrees/data) repository, which the `cxx` submodule includes at `cxx/data`. Make sure to build the module with `make install` command as the tests do not work on a static build. ``` make test ``` @@ -42,9 +42,9 @@ To run the 51Degrees together with the Nginx test suite, run the following comma make test-full ``` -These do not run all the required tests as some tests require properties that are not supported with the Lite version of the data file. To run all tests, obtain a data file that provides properties: JavascriptHardwareProfile, ScreenPixelsWidthJavascript, and ScreenPixelsWidth. Then, use the `FIFTYONEDEGREES_DATAFILE` variable to specify the file name to run the tests with. The new data file should be placed in the `device-detection-cxx\device-detection-data` folder and should have a different name to `51Degrees-LiteV4.1.hash`. If tests still fail, obtain a data file with any other properties used in the tests. Below is an example of running tests with a different data file named `51Degrees-EnterpriseV4.1.hash`: +These do not run all the required tests as some tests require properties that are not supported with the Lite version of the data file. To run all tests, obtain a data file that provides properties: JavascriptHardwareProfile, ScreenPixelsWidthJavascript, and ScreenPixelsWidth. Then, use the `51DEGREES_DD_PATH` variable to give the path of the data file to run the tests with. If tests still fail, obtain a data file with any other properties used in the tests. Below is an example of running tests with a different data file named `51Degrees-EnterpriseV4.1.hash`: ``` -make [test|test-full] FIFTYONEDEGREES_DATAFILE=51Degrees-EnterpriseV4.1.hash +make [test|test-full] 51DEGREES_DD_PATH=/path/to/51Degrees-EnterpriseV4.1.hash ``` # Configuring the Nginx API diff --git a/src/devicedetection/quickstart.md b/src/devicedetection/quickstart.md index b1688d00a0..93cb2abba6 100644 --- a/src/devicedetection/quickstart.md +++ b/src/devicedetection/quickstart.md @@ -84,12 +84,11 @@ C does not have a @Pipeline implementation or the ability to use the cloud-based Device Detection. To get started with C device detection On-premise: -1. Clone the GitHub [repository](https://github.com/51Degrees/51degrees-cxx). -2. Ensure you have [Git LFS](https://git-lfs.github.com/) installed. The device data files are large binary files that can cause problems if stored in a Git repository directly, so Git LFS is used. -3. Ensure all submodules are checked out by running `git submodule update --init --recursive` in the repository. -4. Follow the [installation instructions](https://github.com/51Degrees/51degrees-cxx/blob/main/README%2Emd) to get set up with the project. -5. Follow the linked example here: [Getting Started](@ref DeviceDetection_Examples_GettingStarted_Console_OnPremise). -6. (optional) Obtain a License Key by purchasing a subscription and download a data file with access to more devices and properties, see our [pricing page](https://51degrees.com/pricing) for details. +1. Clone the GitHub [repository](https://github.com/51Degrees/51degrees-cxx) with its submodules by running `git clone --recurse-submodules https://github.com/51Degrees/51degrees-cxx.git`. In a clone you already have, run `git submodule update --init --recursive` instead. +2. Download the free Lite data file by running `sh data/get-data-files.sh 51Degrees-LiteV4.1.hash` from the repository root, or `./data/get-data-files.ps1 51Degrees-LiteV4.1.hash` in PowerShell. The scripts are part of the [data](https://github.com/51Degrees/data) repository, which is the `data` submodule. The examples also download the file themselves when it is missing. +3. Follow the [installation instructions](https://github.com/51Degrees/51degrees-cxx/blob/main/README%2Emd) to get set up with the project. +4. Follow the linked example here: [Getting Started](@ref DeviceDetection_Examples_GettingStarted_Console_OnPremise). +5. (optional) Obtain a License Key by purchasing a subscription and download a data file with access to more devices and properties, see our [pricing page](https://51degrees.com/pricing) for details. @endsnippet @startsnippet{cxx} @@ -97,12 +96,11 @@ C++ does not have a @Pipeline implementation or the ability to use the cloud-bas Device Detection. To get started with C++ device detection On-premise: -1. Clone the GitHub [repository](https://github.com/51Degrees/51degrees-cxx). -2. Ensure you have [Git LFS](https://git-lfs.github.com/) installed. The device data files are large binary files that can cause problems if stored in a Git repository directly, so Git LFS is used. -3. Ensure all submodules are checked out by running `git submodule update --init --recursive` in the repository. -5. Follow the [installation instructions](https://github.com/51Degrees/51degrees-cxx/blob/main/README%2Emd) to get set up with the project. -6. Follow the linked example here: [Getting Started](@ref DeviceDetection_Examples_GettingStarted_Console_OnPremise). -7. (optional) Obtain a License Key by purchasing a subscription and download a data file with access to more devices and properties, see our [pricing page](https://51degrees.com/pricing) for details. +1. Clone the GitHub [repository](https://github.com/51Degrees/51degrees-cxx) with its submodules by running `git clone --recurse-submodules https://github.com/51Degrees/51degrees-cxx.git`. In a clone you already have, run `git submodule update --init --recursive` instead. +2. Download the free Lite data file by running `sh data/get-data-files.sh 51Degrees-LiteV4.1.hash` from the repository root, or `./data/get-data-files.ps1 51Degrees-LiteV4.1.hash` in PowerShell. The scripts are part of the [data](https://github.com/51Degrees/data) repository, which is the `data` submodule. The examples also download the file themselves when it is missing. +3. Follow the [installation instructions](https://github.com/51Degrees/51degrees-cxx/blob/main/README%2Emd) to get set up with the project. +4. Follow the linked example here: [Getting Started](@ref DeviceDetection_Examples_GettingStarted_Console_OnPremise). +5. (optional) Obtain a License Key by purchasing a subscription and download a data file with access to more devices and properties, see our [pricing page](https://51degrees.com/pricing) for details. @endsnippet @startsnippet{dotnet} @@ -178,24 +176,22 @@ Due to the restrictions imposed by Composer and Packagist, we cannot supply the Varnish does not have a @Pipeline implementation or the ability to use the cloud-based version of Device Detection. To get started with Varnish device detection On-premise: -1. Clone the GitHub [repository](https://github.com/51degrees/51degrees-varnish). -2. Ensure you have [Git LFS](https://git-lfs.github.com/) installed. The device data files are large binary files that can cause problems if stored in a Git repository directly, so Git LFS is used. -3. Ensure all submodules are checked out by running `git submodule update --init --recursive` in the repository. -4. Follow the [installation instructions](@ref DeviceDetection_OtherIntegrations_Varnish) to get set up with the project. -5. Follow the linked example here: [Getting Started](@ref DeviceDetection_Examples_GettingStarted_Console_OnPremise). -6. (optional) Obtain a License Key by purchasing a subscription and download a data file with access to more devices and properties, see our [pricing page](https://51degrees.com/pricing) for details. +1. Clone the GitHub [repository](https://github.com/51degrees/51degrees-varnish) with its submodules by running `git clone --recurse-submodules https://github.com/51Degrees/51degrees-varnish.git`. In a clone you already have, run `git submodule update --init --recursive` instead. +2. Download the free Lite data file, and the free Asn data file that the IP Intelligence tests use, by running `sh cxx/data/get-data-files.sh 51Degrees-LiteV4.1.hash 51Degrees-IPIV4AsnIpiV41.ipi` from the repository root. The script is part of the [data](https://github.com/51Degrees/data) repository, which the `cxx` submodule includes at `cxx/data`. +3. Follow the [installation instructions](@ref DeviceDetection_OtherIntegrations_Varnish) to get set up with the project. +4. Follow the linked example here: [Getting Started](@ref DeviceDetection_Examples_GettingStarted_Console_OnPremise). +5. (optional) Obtain a License Key by purchasing a subscription and download a data file with access to more devices and properties, see our [pricing page](https://51degrees.com/pricing) for details. @endsnippet @startsnippet{nginx} Nginx does not have a @Pipeline implementation or the ability to use the cloud-based version of Device Detection. To get started with Nginx device detection On-premise: -1. Clone the GitHub [repository](https://github.com/51degrees/51degrees-nginx). -2. Ensure you have [Git LFS](https://git-lfs.github.com/) installed. The device data files are large binary files that can cause problems if stored in a Git repository directly, so Git LFS is used. -3. Ensure all submodules are checked out by running `git submodule update --init --recursive` in the repository. -4. Follow the [installation instructions](@ref DeviceDetection_OtherIntegrations_Nginx) to get set up with the project. -5. Follow the linked example here: [Getting Started](@ref DeviceDetection_Examples_GettingStarted_Console_OnPremise). -6. (optional) Obtain a License Key by purchasing a subscription and download a data file with access to more devices and properties, see our [pricing page](https://51degrees.com/pricing) for details. +1. Clone the GitHub [repository](https://github.com/51degrees/51degrees-nginx) with its submodules by running `git clone --recurse-submodules https://github.com/51Degrees/51degrees-nginx.git`. In a clone you already have, run `git submodule update --init --recursive` instead. +2. Download the free Lite data file by running `sh cxx/data/get-data-files.sh 51Degrees-LiteV4.1.hash` from the repository root. The script is part of the [data](https://github.com/51Degrees/data) repository, which the `cxx` submodule includes at `cxx/data`. +3. Follow the [installation instructions](@ref DeviceDetection_OtherIntegrations_Nginx) to get set up with the project. +4. Follow the linked example here: [Getting Started](@ref DeviceDetection_Examples_GettingStarted_Console_OnPremise). +5. (optional) Obtain a License Key by purchasing a subscription and download a data file with access to more devices and properties, see our [pricing page](https://51degrees.com/pricing) for details. @endsnippet @startsnippet{go} @@ -203,12 +199,11 @@ Currently, we have a light set of device detection features for Go users to try [device-detection-go](https://github.com/51Degrees/51degrees-go/tree/main/device-detection#readme), [device-detection-examples-go](https://github.com/51Degrees/51degrees-go/tree/main/examples/device-detection#readme). To get started with Go device detection On-premise: -1. Clone the GitHub [repository](https://github.com/51Degrees/51degrees-go). -2. Ensure you have [Git LFS](https://git-lfs.github.com/) installed. The device data files are large binary files that can cause problems if stored in a Git repository directly, so Git LFS is used. -3. Ensure all submodules are checked out by running `git submodule update --init --recursive` in the repository. -4. Follow the [installation instructions](https://github.com/51Degrees/51degrees-go/tree/main/device-detection#build-and-usage) to get set up with the project. -5. Follow the linked example here: [Getting Started](https://github.com/51Degrees/51degrees-go/blob/main/examples/device-detection/dd/getting_started/getting_started.go). -6. (optional) Obtain a License Key by purchasing a subscription and download a data file with access to more devices and properties, see our [pricing page](https://51degrees.com/pricing) for details. +1. Clone the GitHub [repository](https://github.com/51Degrees/51degrees-go) with its submodules by running `git clone --recurse-submodules https://github.com/51Degrees/51degrees-go.git`. In a clone you already have, run `git submodule update --init --recursive` instead. +2. Download the free Lite data file by running `sh cxx/data/get-data-files.sh 51Degrees-LiteV4.1.hash` from the repository root, or `./cxx/data/get-data-files.ps1 51Degrees-LiteV4.1.hash` in PowerShell. The scripts are part of the [data](https://github.com/51Degrees/data) repository, which the `cxx` submodule includes at `cxx/data`. +3. Follow the [installation instructions](https://github.com/51Degrees/51degrees-go/tree/main/device-detection#build-and-usage) to get set up with the project. +4. Follow the linked example here: [Getting Started](https://github.com/51Degrees/51degrees-go/blob/main/examples/device-detection/dd/getting_started/getting_started.go). +5. (optional) Obtain a License Key by purchasing a subscription and download a data file with access to more devices and properties, see our [pricing page](https://51degrees.com/pricing) for details. @endsnippet @startsnippet{rust} diff --git a/src/snippets/example-require-datafile.txt b/src/snippets/example-require-datafile.txt index 62bbcf46e7..5461c9b26d 100644 --- a/src/snippets/example-require-datafile.txt +++ b/src/snippets/example-require-datafile.txt @@ -1,13 +1,15 @@ @htmlonly

-This example requires a local data file. The free 'Lite' data file can be acquired by -pulling the git submodules under this repository (run `git submodule update --recursive`) -or from the device-detection-data -GitHub repository. +This example requires a local data file. The free 'Lite' data file can be downloaded with the +scripts in the data GitHub repository, which +this repository includes at cxx/data. Fetch the submodules by running +git submodule update --init --recursive, then run +sh cxx/data/get-data-files.sh 51Degrees-LiteV4.1.hash from the repository root, +which saves the file as cxx/data/device-detection/51Degrees-LiteV4.1.hash.

The Lite data file is only used for illustration, and has limited accuracy and capabilities. Find out about the more capable data files that are available on our -pricing page +pricing page.

@endhtmlonly \ No newline at end of file From b7ab5daba79270e16b1bf500133db41afbe3ba1c Mon Sep 17 00:00:00 2001 From: James Rosewell Date: Wed, 4 Nov 2026 21:46:29 +0000 Subject: [PATCH 4/5] Add PHP to the nightly benchmarks (#291) --- src/productsummaries/nightlybenchmarks.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/productsummaries/nightlybenchmarks.md b/src/productsummaries/nightlybenchmarks.md index ef12d1b1c7..005fa3a208 100644 --- a/src/productsummaries/nightlybenchmarks.md +++ b/src/productsummaries/nightlybenchmarks.md @@ -3,11 +3,12 @@ | API / Product |
Device Detection
|
IP Intelligence
| |---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------| | C/C++ | ![dd-cxx](https://raw.githubusercontent.com/51Degrees/51degrees-cxx/gh-images/perf-graph-Ubuntu_x64_Release-DetectionsPerSecond-latest.png) | ![ip-cxx](https://raw.githubusercontent.com/51Degrees/51degrees-cxx/gh-images/perf-graph-Ubuntu_x64_Release-LookupsPerSecond-latest.png) | -| .NET | ![dd-dotnet](https://raw.githubusercontent.com/51Degrees/device-detection-dotnet/gh-images/perf-graph-Ubuntu_x64_Release-DetectionsPerSecond-latest.png) | ![ip-dotnet](https://raw.githubusercontent.com/51Degrees/ip-intelligence-dotnet/gh-images/perf-graph-Ubuntu_x64_Release-DetectionsPerSecond-latest.png) | +| .NET | ![dd-dotnet](https://raw.githubusercontent.com/51Degrees/51degrees-dotnet/gh-images/perf-graph-Ubuntu_x64_Release-DetectionsPerSecond-latest.png) | ![ip-dotnet](https://raw.githubusercontent.com/51Degrees/ip-intelligence-dotnet/gh-images/perf-graph-Ubuntu_x64_Release-DetectionsPerSecond-latest.png) | | Java | ![dd-java](https://raw.githubusercontent.com/51Degrees/51degrees-java/gh-images/perf-graph-Ubuntu_Java_17-DeviceDetection_DetectionsPerSecond-latest.png) | ![ip-java](https://raw.githubusercontent.com/51Degrees/51degrees-java/gh-images/perf-graph-Ubuntu_Java_8-IpIntelligence_DetectionsPerSecond-latest.png) | | Go | ![dd-go](https://raw.githubusercontent.com/51Degrees/51degrees-go/gh-images/perf-graph-Ubuntu_Go_1.24-DetectionsPerSecond-latest.png) | ![ip-go](https://raw.githubusercontent.com/51Degrees/51degrees-go/gh-images/perf-graph-Ubuntu_Go_1.24-LookupsPerSecond-latest.png) | | Node.js | ![dd-node](https://raw.githubusercontent.com/51Degrees/51degrees-node/gh-images/perf-graph-Ubuntu_Node_24-DetectionsPerSecond-latest.png) | | | Python | ![dd-python](https://raw.githubusercontent.com/51Degrees/51degrees-python/gh-images/perf-graph-Ubuntu_Python_3.13-DetectionsPerSecond-latest.png) | | +| PHP | ![dd-php](https://raw.githubusercontent.com/51Degrees/51degrees-php/gh-images/perf-graph-Ubuntu_PHP_8.4-DetectionsPerSecond-latest.png) | | | Rust | ![dd-rust](https://raw.githubusercontent.com/51Degrees/51degrees-rust/gh-images/perf-graph-DeviceDetection-OnPremise-DetectionsPerSecond-latest.png) | ![ip-rust](https://raw.githubusercontent.com/51Degrees/51degrees-rust/gh-images/perf-graph-IpIntelligence-OnPremise-LookupsPerSecond-latest.png) | | NGINX | ![dd-nginx](https://raw.githubusercontent.com/51Degrees/51degrees-nginx/gh-images/perf-graph-ubuntu-latest-DetectionsPerSecond-latest.png) | ![ip-nginx](https://raw.githubusercontent.com/51Degrees/51degrees-nginx/gh-images/perf-graph-ubuntu-latest_IPI-DetectionsPerSecond-latest.png) | | Varnish | ![dd-varnish](https://raw.githubusercontent.com/51Degrees/51degrees-varnish/gh-images/perf-graph-ubuntu_DD-DetectionsPerSecond-latest.png) | ![ip-varnish](https://raw.githubusercontent.com/51Degrees/51degrees-varnish/gh-images/perf-graph-ubuntu_IPI-DetectionsPerSecond-latest.png) | From 73b54dba987d05c2e3dd82a2e365957ac5c8bbf9 Mon Sep 17 00:00:00 2001 From: James Rosewell Date: Thu, 5 Nov 2026 06:58:24 +0000 Subject: [PATCH 5/5] Say precise, not accurate, where the pages describe how far an IP location can be from the device (#293) Accurate means a location is correct. A location from an IP address can be correct and still only narrow the device down to an area, so the pages say imprecision and precise where they describe that. The property names, such as AccuracyRadiusMin, are unchanged. --- src/ipintelligence/features/confidence.md | 2 +- src/ipintelligence/migration/ipinfo.md | 2 +- src/ipintelligence/overview.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ipintelligence/features/confidence.md b/src/ipintelligence/features/confidence.md index c7f816b7bf..c021a8eff4 100644 --- a/src/ipintelligence/features/confidence.md +++ b/src/ipintelligence/features/confidence.md @@ -14,7 +14,7 @@ Always check the value of `LocationConfidence` when determining how to use IP In - **High** confidence results can be relied upon and considered useful for all practical purposes. -- **Medium** confidence results might be useful where the use case can tolerate a degree of inaccuracy. +- **Medium** confidence results might be useful where the use case can tolerate a degree of imprecision. - **Low** or **Unknown** confidence results should be discarded when the results might be used to make consequential decisions. Instead of using the results consider asking the user to share their location via device APIs such as GPS and then using reverse geocoding, or enter their postal address manually. Subsequent processing may also be similar to handling an exception when obtaining the result. diff --git a/src/ipintelligence/migration/ipinfo.md b/src/ipintelligence/migration/ipinfo.md index 93ba25dd70..09e29f7469 100644 --- a/src/ipintelligence/migration/ipinfo.md +++ b/src/ipintelligence/migration/ipinfo.md @@ -27,7 +27,7 @@ Where a mapping is approximate, the **Notes** column calls it out. Where no equi **Coordinate randomization**: 51Degrees randomizes `Latitude` and `Longitude` within around 1 km of the true average location for the IP range. The randomization is applied during data file generation, so the value returned for a given IP address is stable across all lookups against the same data file and only changes when a new data file is published. This guarantees the coordinates cannot be classified as personal data. No other property is affected. See [Randomization](@ref IpIntelligence_Features_Randomization). -**Location confidence**: 51Degrees rolls up location certainty into a single string-valued `LocationConfidence` property covering the town and country. IPInfo's `radius` field expresses accuracy as a numeric kilometer figure; the closest categorical 51Degrees equivalent is `LocationConfidence`, which complements the numeric `AccuracyRadiusMax` and `AccuracyRadiusMin` properties. See the [property dictionary](https://51degrees.com/developers/property-dictionary) for the set of possible values. +**Location confidence**: 51Degrees rolls up location certainty into a single string-valued `LocationConfidence` property covering the town and country. IPInfo's `radius` field expresses precision as a numeric kilometer figure; the closest categorical 51Degrees equivalent is `LocationConfidence`, which complements the numeric `AccuracyRadiusMax` and `AccuracyRadiusMin` properties. See the [property dictionary](https://51degrees.com/developers/property-dictionary) for the set of possible values. # ASN product diff --git a/src/ipintelligence/overview.md b/src/ipintelligence/overview.md index 216b875fd5..b02cab9698 100644 --- a/src/ipintelligence/overview.md +++ b/src/ipintelligence/overview.md @@ -34,7 +34,7 @@ Data sourced from aggregating real device usage and multiple authoritative datab ### Privacy Protections -Coordinates returned for an IP address are [randomized](@ref IpIntelligence_Features_Randomization) to within 1km of the original point, which keeps them accurate enough for practical applications. +Coordinates returned for an IP address are [randomized](@ref IpIntelligence_Features_Randomization) to within 1km of the original point, which keeps them precise enough for practical applications. ### Accuracy Weighting