---
title: 'pyIPREQ: Disambiguated Multi-Domain Research Tool'
url: https://www.emergentmind.com/topics/pyipreq
type: topic
---

# pyIPREQ: Disambiguated Multi-Domain Research Tool

pyIPREQ is a name used in recent research for three distinct systems rather than a single unified artifact: a free, open-source web application for IP-based threat intelligence and domain/IP analysis, a Python-3 free-boundary axisymmetric MHD equilibrium code for tokamak plasmas, and a compact Wi-Fi Probe Request fingerprinting pipeline based on Asymmetric Pairwise Boosting. The term therefore has domain-specific meanings that depend entirely on paper context: cybersecurity-oriented IP characterization in one case, Grad–Shafranov equilibrium computation in another, and binary device fingerprints from Probe Request Information Elements in a third [2412.03023] [2507.18324] [2412.10548].

## 1. Terminological scope and domain-specific meanings

The available literature uses the same label for unrelated technical objects. In the cybersecurity paper, pyIPREQ denotes a “free, open-source, one-stop web tool” at **ipanalyzer.in** for comprehensive IP address and domain characterization. In the plasma-physics papers, pyIPREQ denotes a **free-boundary, axisymmetric MHD equilibrium solver** and, more specifically, a Python-3 implementation extending IPREQ and drawing on PEST. In the Wi-Fi fingerprinting paper, pyIPREQ denotes a compact **Probe Request fingerprinting pipeline** that maps management frames to short binary descriptors for pairwise matching under MAC randomization [2412.03023] [2507.18324] [2412.10548].

| Research context | Meaning of pyIPREQ | Representative paper |
|---|---|---|
| Cybersecurity | Web tool for IP-based threat intelligence and comprehensive IP address analysis | [2412.03023] |
| Tokamak MHD | Python-3 free-boundary, axisymmetric equilibrium code | [2507.18324] |
| Wi-Fi fingerprinting | Compact Probe Request fingerprinting pipeline using APB | [2412.10548] |

A recurrent misconception would be to treat pyIPREQ as a single cross-domain framework. The cited papers do not support that interpretation. They instead indicate label reuse across separate research programs.

## 2. pyIPREQ as an IP-analysis and threat-intelligence web platform

In "A Multi-Functional Web Tool for Comprehensive Threat Detection Through IP Address Analysis" [2412.03023], pyIPREQ is presented as a unified web application intended to help cybersecurity practitioners decide whether an IP address or domain is trustworthy, suspicious, or worth deeper investigation. The paper motivates the tool by reporting that, among **105 surveyed tools, none offered the full combination of features** required for end-to-end IP threat assessment in a single place.

The supported inputs are **domain names and IPv4 addresses**. The emphasized capabilities are **geolocation**, **blocklist checking**, **VPN detection**, **proxy detection**, **bot detection**, **Tor detection**, **port scanning**, and **domain statistics**, including **name servers** and **registrar information**. The paper situates these functions within incident response, threat detection and prevention, cybercrime investigation, anonymization detection, suspicious domain validation, and quick pre-engagement infrastructure checks.

A central design element is the **confidence score**, derived from “publicly accessible online results from different reliable sources.” The abstract describes the score as a **weighted sum**, and the main text describes it as a **weighted average** of API responses using predefined weights. The formulation given in the paper is

$$
C = \sum_{i=1}^{n} w_i r_i
$$

where \(C\) is the final confidence score, \(r_i\) is the result returned by the \(i\)-th source or API, \(w_i\) is the predefined weight for that source, and \(n\) is the number of sources used for the query. If the weights are normalized so that \(\sum_i w_i = 1\), the expression becomes a weighted average. The paper does not further formalize how each \(r_i\) is encoded, but it explicitly frames the score as a way to aggregate noisy or inconsistent single-source signals into a more dependable user-facing indicator.

The implementation stack is **Python** for backend logic, **Django** for the server-side framework, and **Angular** for the frontend. The authors also describe a local caching database based on **MongoDB**, used to store user records and logs of previous searches together with returned information. This cache enables retrieval of recent results when external API communication is slow or unavailable and is intended to **minimize external Web API calls**. Security measures mentioned in the paper include defenses against **CSRF**, **XSS**, and **JavaScript injection attacks**, as well as **two-factor authentication** and a user-management system.

The paper is explicit that the tool’s outputs are useful but not definitive. Geolocation may be inaccurate because of mobile networks, anonymization services, or stale databases; Tor, VPN, and proxy detection may miss sophisticated evasion or produce false positives; port scanning may be blocked by firewalls; WHOIS-related data may be privacy-protected or outdated; and blocklists may lag emerging threats. The system is therefore presented as a practical aggregation layer for threat intelligence rather than a conclusive attribution mechanism.

## 3. pyIPREQ as a free-boundary tokamak equilibrium code

In "Plasma Position Constrained Free-Boundary MHD Equilibrium in Tokamaks using pyIPREQ" [2507.18324], pyIPREQ denotes a **Python-3 free-boundary, axisymmetric MHD equilibrium code** for tokamak plasmas. It solves for the plasma poloidal flux and current distribution in the poloidal \(R\)-\(Z\) plane by iterating the **Grad–Shafranov equation** to self-consistency. The paper describes the code as a modern Python implementation and extension of the older **IPREQ** code, itself inspired by **PEST**.

The equilibrium model is based on the standard axisymmetric Grad–Shafranov formulation:

$$
\frac{\partial^2\psi}{\partial R^2}+\frac{\partial^2\psi}{\partial Z^2}-\frac{1}{R}\frac{\partial\psi}{\partial R}
=
-\mu_0R^2\frac{\partial p}{\partial\psi}-F\frac{\partial F}{\partial\psi}
$$

with toroidal current density

$$
J_{\phi}=Rp'+\frac{1}{\mu_0R}FF'
$$

and therefore

$$
\Delta^*\psi=-\mu_0RJ_{\phi}.
$$

The solver treats the problem as **free-boundary**, so the plasma boundary is not fixed in advance but is determined self-consistently from the plasma-generated flux, external poloidal field coils, and an assumed current profile. Boundary fluxes from coils and plasma are computed with a **Green’s function method**, and the interior Grad–Shafranov equation is solved on a **uniform rectangular \(R\)-\(Z\) grid** using **finite differences** and SciPy’s sparse solver. The iterative procedure is a **Picard iteration**: guess \(J_\phi\), solve for \(\psi\), update \(J_\phi\), and repeat until convergence.

The code explicitly supports **limiter boundaries**, with current density restricted to the limiter-defined plasma domain. A commonly used parameterized current-density profile is

$$
J_\phi\propto\left(\beta\frac{R}{R_0}+\left(1-\beta\right)\frac{R_0}{R}\right)\left(1-\left(1-\bar\psi\right)^\alpha\right)^\gamma,
$$

normalized so that \(\iint J_\phi\,dR\,dZ=I_p\). The paper states that pyIPREQ can compute or output **safety factor** \(q\), **plasma beta** \(\beta\) and \(\beta_p\), **internal inductance** \(\ell_i\), magnetic-axis position \((R_{ax},Z_{ax})\), elongation \(\kappa\), triangularity \(\delta\), and **G-EQDSK** files.

A major extension is equilibrium computation constrained by a prescribed **magnetic axis position**. The paper presents this as particularly useful when axis information is available from diagnostics such as **Sine-Cosine coils** or **H-\(\alpha\)** diagnostics. One step chooses \(\beta\) so that \(J_\phi\) has a maximum at the prescribed radial location, and a subsequent optimization over \(\alpha\) and \(\gamma\) minimizes the distance between the equilibrium’s \(\nabla\psi=0\) point and the target axis. An alternative vertical-shift method is also described for \(Z_{ax}\).

The paper additionally introduces a treatment for **vertical instability**, especially important for **elongated plasmas**. It identifies the decay index \(n_{\text{decay}}\) as the relevant stability indicator and adopts a Johnson-style artificial-feedback-coil method. The feedback-coil currents are updated according to

$$
I_{\text{coil}}=-\text{sgn}(Z_{\text{coil}})\,C_1\,(Z_{ax}-Z_{\text{target}})\,I_p,
$$

with the expectation that these currents become negligible at convergence.

Benchmarking is reported against a published ITER equilibrium, the original IPREQ code, and FREEGS. Agreement is reported for quantities including \(\ell_i\), \(\beta_p\), \(R_{ax}\), \(Z_{ax}\), \(\kappa\), \(\delta\), \(\beta_t\), and \(q\), with magnetic-axis positions and \(\psi\)/\(J_\phi\) profiles described as matching extremely closely in the IPREQ comparisons. Applications are demonstrated for **ADITYA-U** experiments and predictive studies for **SST-1** and **ADITYA-U** under alternative operational scenarios, including **negative triangularity**, **single-null**, and divertor-coil effects.

## 4. pyIPREQ as a synthetic-equilibrium generator for ADITYA-U surrogate models

In "Deep Learning Models for ADITYA-U MHD Equilibrium" [2607.04865], pyIPREQ is the engine used to generate the synthetic equilibrium database that trains multiple deep learning surrogates. The paper describes pyIPREQ as a **free-boundary, axisymmetric MHD equilibrium solver** built on the Grad–Shafranov formulation and uses it to produce scalar labels, **1D safety-factor profiles**, and **2D poloidal-flux profiles**.

The dataset contains **100,760 equilibrium cases** generated from **766 ADITYA-U discharges** spanning **2021–2025** and shot numbers **34227–38999**. Only discharges satisfying \(I_p > 100\) kA for at least 80 ms were selected, and only intervals near the **flat-top phase** were used, defined as the window where \(I_p\) remained within 80% of its peak value. The database was deliberately limited to **circular limiter plasmas**, with a limiter contour of radius **0.25 m** centered at \((0.75\,\text{m},0)\), on a rectangular \(R\)-\(Z\) grid of **0.01 m** resolution over

$$
R \in (0.4\,\text{m},1.1\,\text{m}), \qquad Z \in (-0.35\,\text{m},0.35\,\text{m}).
$$

The paper states that **eddy currents were ignored**, and that **BCC coils and TF bus bars were ignored** in the equilibrium-generation coil configuration. Inputs included coil currents, plasma current \(I_p\), toroidal field \(B_\phi\), limiter boundary, and a prescribed toroidal current-density profile with parameters \(\alpha,\beta,\gamma\). Since direct experimental \(\beta_p\) measurements existed for only **39 shots**, the authors constructed a linear regression model to estimate \(\beta_p\) probabilistically from current, field, voltage, and timing variables transformed into the final input set \(1/I_p^2\), \(I_{VF}/I_p\), \(I_{OT}/I_p\), \(I_{TF}/I_p\), \(V_{loop}/I_p\), \(t_i/t_{end}\), \(1/t_{beg}\), and \(t_{end}\). Residuals were approximately \(\mathcal{N}(-0.003,0.036)\), dataset generation injected noise sampled from \(\mathcal{N}(0,0.04)\), and generated \(\beta_p\) values were clipped to \((0.05,0.4)\).

Further realism was introduced by smoothing measured coil currents, \(I_p\), and \(B_\phi\), then perturbing them with **2% uniformly random noise** before equilibrium generation. After generation, the paper filtered out unrealistic solutions using criteria including \(|R_{ax}-R_{maj}| \le 0.04\) m, \(|Z_{ax}| \le 0.02\) m, \(0.7 < \ell_i < 1.7\), \(\gamma < 8.9\), \(0.9 < q_0 < 1.5\), \(q_1 > 2.0\), and pyIPREQ convergence. Median values in the retained database are reported as \(I_p = 1.43\times 10^5\) A, \(\beta_p = 0.196\), \(\ell_i = 1.118\), \(q_0 = 1.147\), and \(q_1 = 2.779\).

These pyIPREQ-generated equilibria support several learning tasks. Scalar-output models predict \((R_{ax},Z_{ax})\), \(\beta_p\), \(\ell_i\), \(q_1\), \(\psi_{axs}\), and \(\psi_{lim}\). Profile models learn the **1D safety factor profile** \(q(\rho)\), stored as a length-101 array, and the **2D poloidal flux profile** \(\psi(R,Z)\) on a **71×71 grid**. The \(q\)-profile is modeled via PCA or a 1D CNN predicting \(q'=\partial q/\partial\rho\), while \(\psi(R,Z)\) is modeled via PCA and 2D CNNs. The \(\psi\) models are **physics-informed** through the Grad–Shafranov residual

$$
\delta GS=\langle(\Delta^*\psi+\mu_0RJ_\phi)^2\rangle.
$$

For the PCA-based \(\psi\) model, the total loss is \(MSE+2\cdot \delta GS\). For the 2D CNN, the paper uses a multi-loss construction involving \(\text{MSE}_\psi\), \(\text{MSE}_J\), \(\delta GS\), a progressively activated weighting factor \(f=sigmoid(-50(\text{MSE}_\psi + \text{MSE}_J - 0.15))\), and uncertainty-based balancing.

The paper also develops an **inverse model** that maps target equilibrium conditions \((B_\phi,R_{ax},Z_{ax},I_p,\beta_p,q_0,q_1,\ell_i)\) to coil-current groups \(I_{OT}\), \(I_{VF}\), and \(I_{FF}\). It explicitly notes that this mapping is **not unique**, so the network should be interpreted as learning statistically preferred actuator combinations present in the dataset rather than a unique physically correct solution. The largest CNN is reported to predict one equilibrium in about **1 ms on a multi-core CPU**, positioning pyIPREQ-generated synthetic data as a basis for fast surrogate models suitable for rapid equilibrium analysis and potentially real-time control.

## 5. pyIPREQ as compact Wi-Fi Probe Request fingerprinting

In "Compact Probe Request Fingerprinting with Asymmetric Pairwise Boosting" [2412.10548], pyIPREQ denotes a compact fingerprinting method for **Wi-Fi Probe Requests**. Its goal is to decide whether two Probe Requests came from the **same physical device** even when **MAC address randomization** is used. The paper’s central idea is to learn discriminative bit sequences from the Probe Request body and quantize them into a short binary descriptor.

A Probe Request \(x_n\) is mapped to

$$
F(x_n) = [F_1(x_n), F_2(x_n), \ldots, F_M(x_n)] \in \{-1,+1\}^M.
$$

The method begins from raw Probe Requests in PCAP format and retains Information Elements identified as useful in prior work, especially **HT Capabilities**, **Extended Capabilities**, and **Vendor Specific Tags**. After preprocessing, each Probe Request is represented as a **1784-bit** binary vector, that is, **223 bytes**.

The algorithm then constructs a bank of **2,492 candidate filters** over this bitstream. Four filter types are defined: **Type A** with first half \(+1\) and second half \(-1\); **Type B** as the complement; **Type C** with all non-zero bits \(-1\); and **Type D** with all non-zero bits \(+1\). Each filter has length \(L \in \{4,8,16\}\), zero-prefix length \(P\), and zero-suffix length \(S\), subject to \(P+L+S=1784\). The paper characterizes these as **Haar-like features** that focus on local regions of the Probe Request.

Learning is performed by **Asymmetric Pairwise Boosting (APB)** on labeled pairs \(\langle x_{a(n)},x_{b(n)} \rangle\), where \(y_n=+1\) denotes a matching pair and \(y_n=-1\) a non-matching pair. For a filter \(h_i\) and threshold \(t_p\), the pairwise weak classifier is

$$
h_{i,p}(x_{a(n)},x_{b(n)}) \triangleq \xi((b_i(x_{a(n)})-t_p)(b_i(x_{b(n)})-t_p)).
$$

APB iteratively chooses the filter-threshold pair with minimum weighted pairwise error and computes its confidence

$$
c_m \triangleq \log\bigg(\frac{1-\varepsilon^*}{\varepsilon^*}\bigg).
$$

The “asymmetric” property is that weights are updated only for **matching pairs** when they are misclassified; the paper explicitly states that symmetric weighting would violate AdaBoost’s weak-classifier criterion and hurt performance. The selected filters and thresholds produce the final binary fingerprint by a one-bit threshold decision for each learned filter.

Matching can use a weighted Hamming-style score or ordinary Hamming distance. The simpler rule is

$$
\hat{y} =
\begin{cases}
+1 & \text{if } \sum F(x_1) \oplus F(x_2) < \tau, \\
-1 & \text{otherwise}.
\end{cases}
$$

The paper evaluates fingerprints of **8**, **16**, **32**, and **64** bits. The reported main finding is that **16-bit fingerprints** perform best overall in the presented tests, while longer fingerprints can slightly reduce pairwise discrimination. Evaluation uses a merged public dataset from **Pintor et al. (2022)** and **Baccichet et al. (2024)** containing **33 devices**, captures from **channels 1, 6, and 11** in the **2.4 GHz** band, **1000 matching pairs**, non-matching pairs sampled from different devices, a balanced class distribution, and a **60/40** train/test split. Baselines are **IE** and **IE + Channel**, both using **DBSCAN**.

The reported clustering results show that the compact fingerprints slightly lag the best baselines on **V-Measure**, but achieve the **lowest RMSE** in estimating the number of devices. Storage reduction is substantial: the paper states **less than 1% of the memory** of state-of-the-art methods, roughly **two orders of magnitude reduction**, with **16-bit fingerprints** using **16 bits per Probe Request** instead of **1656** or **1784** bits in the baselines. The work therefore frames MAC randomization as an incomplete privacy defense: device-specific IE structure can still support linkage over time.

## 6. Limitations, interpretive cautions, and cross-domain significance

Each usage of pyIPREQ carries explicit limitations, and those limitations differ sharply by domain. For the threat-intelligence web tool, the paper states that geolocation may be inaccurate, blocklist and reputation databases may lag, VPN/proxy/Tor detection can miss sophisticated evasion or yield false positives, port scans may be blocked by firewalls, and WHOIS-related metadata may be privacy-protected or outdated; the individual checks are therefore helpful but “not definitive on their own” [2412.03023]. For the tokamak equilibrium workflow, the 2026 study states that the database is restricted to **circular limiter equilibria**, depends on the chosen current-density parameterization, excludes a formal linear MHD stability analysis, uses a relatively simple \(\beta_p\) estimation procedure based on limited measurements, and that future work could incorporate eddy currents, additional diagnostics, and experimentally reconstructed equilibria [2607.04865]. For the Wi-Fi fingerprinting method, the paper assumes access to labeled training pairs, stable discriminative Information Elements, and an evaluation setting in which Probe Request structures are sufficiently informative; it also notes that longer fingerprints do not always help, that there is a compactness–performance trade-off, and that the method is not a direct device-identity predictor for arbitrary unseen devices without retraining [2412.10548].

The broader significance of the name therefore lies less in a single technical lineage than in repeated use for systems that compress heterogeneous signals into operationally useful outputs. In the cybersecurity paper, those signals are online reputation and metadata sources; in the tokamak papers, they are coil currents, plasma parameters, and Grad–Shafranov-consistent equilibria; in the Wi-Fi paper, they are thresholded responses of learned filters over Information Elements. This suggests a shared naming convention around “request” or “inference” tooling, but the cited literature does not define a common cross-domain architecture or codebase. The correct encyclopedic interpretation is thus disambiguation: pyIPREQ is a reused research label whose meaning must be resolved from immediate disciplinary context.

Source: https://www.emergentmind.com/topics/pyipreq