Info Tools — Manual
Full reference: every card from HTTP Headers to Modernizr, the single-value endpoints, the JSON export, and the split between server-side and client-side data.
Back to overview: Info Tools · Open the live tool: www.jpkc.com/tools/info/
This manual describes Info Tools card by card: what each data point means, where it comes from (server or browser), and how to read the result. The tool's interface is in English, so card and field names appear here in their original spelling.
Usage: enter nothing, just read
Info Tools requires no input. You load the page and it fills every card automatically: the server cards arrive pre-rendered with the page, and the client cards are filled in by JavaScript right after load. Three cards (Battery, Storage, Permissions) briefly show a loading hint because they wait on asynchronous browser APIs; Performance Timing even measures only after the page has fully loaded.
Next to many values sits a small copy button that puts that single value on the clipboard. At the top right, Copy as JSON and Export as JSON handle the entire dataset (see below).
Where the data comes from
The split between server and client data is the tool's core concept:
- Server-side (PHP, from
$_SERVER) are only the HTTP Headers and Connection Info cards. Your browser sent these values with the request; every server sees them. - Client-side (JavaScript in the browser) are all the other cards. They are read locally and not transmitted to the server.
Server cards
HTTP Headers
Shows the key request headers your browser sends with every request:
- HTTP_USER_AGENT — the browser identification (product, version, platform hints).
- HTTP_ACCEPT — which content types your browser accepts.
- HTTP_ACCEPT_LANGUAGE — your preferred languages (drives a site's automatic language choice, among other things).
- HTTP_ACCEPT_ENCODING — supported compression methods (e.g.
gzip,br). - HTTP_DNT — the Do Not Track value; if unset, it reads "Not set".
Each of these header names is a link to a single-value endpoint (see Single-value endpoints).
Connection Info
Describes the technical side of your connection:
- REMOTE_ADDR — your IP address as the server sees it.
- Hostname — the reverse-DNS name for that IP, resolved via PHP's
gethostbyaddr(). If no name resolves, it reads "Not resolvable". - REMOTE_PORT — the source port of your connection.
- SERVER_PROTOCOL — the HTTP protocol in use (e.g.
HTTP/2). - Connection (HTTPS) — "Secure (HTTPS)" or "Not Secure (HTTP)".
- X-Forwarded-For (Proxy) — if you arrive via a proxy or CDN, the forwarded original IP appears here; otherwise "Not set (direct connection)".
Client cards
Screen & Display
Reads the geometry of your screen and window:
- Screen Resolution (
screen.width/height) and Available Area (screen.availWidth/availHeight, excluding taskbars and the like). - Device Pixel Ratio (
devicePixelRatio) — ratio of physical to CSS pixels, e.g.2xon Retina displays. - Screen Colors (
screen.colorDepth) — color depth in bits, plus the number of colors computed from it. - Window Size (
window.outerWidth/outerHeight) and Viewport Size (window.innerWidth/innerHeight). - Orientation (
screen.orientation) — portrait or landscape, or "Not supported". - Touch Support (
maxTouchPoints) — number of simultaneous touch points, "No" if none. - Platform (
navigator.platform).
Browser Settings
Three switch-style values, each shown as a colored badge:
- Cookies Enabled (
navigator.cookieEnabled). - PDF Viewer (
navigator.pdfViewerEnabled) — can read "Not supported" if the browser doesn't expose the property. - WebDriver (
navigator.webdriver) —truesuggests automation; the tool then shows an "Automated" badge, otherwise "Human".
Navigator Properties
Walks the navigator object and groups the properties it finds into Browser, Platform, Language, Network, Features, and Other. Functions and complex objects are skipped; boolean values appear as a green/red badge, lists and strings as code. The card header shows the total number of properties found as a badge.
Browser Plugins
Lists navigator.plugins. Modern browsers usually reveal nothing here to prevent fingerprinting — then the hint "No plugins detected." appears with an explanation. If there are entries, each card shows name, description, filename, and version where available.
MIME Types
Lists navigator.mimeTypes, grouped into Application, Audio, Image, Video, Text, and Other. This too is often empty in modern browsers ("No MIME types detected.").
WebGL / GPU Info
Creates a hidden canvas, obtains a WebGL context, and reads graphics information from it:
- GPU Renderer and GPU Vendor — via the
WEBGL_debug_renderer_infoextension the actual chip and vendor, where the browser allows it. - WebGL Version and GLSL Version.
- Max Texture Size and Max Viewport — GPU limits.
If the browser doesn't support WebGL, a warning appears instead.
Network Info
Uses the Network Information API (navigator.connection), which not every browser has. Available values can include:
- Effective Type — estimated connection class (
4g,3g, …), as a colored badge. - Downlink Speed (Mbps), Round-Trip Time (RTT) (ms), Data Saver (on/off), and possibly Connection Type.
- Online Status —
navigator.onLine, always present.
If the API is missing, the card says so. When the connection changes, the card updates automatically.
Battery Status
Uses the Battery Status API (navigator.getBattery()). Where available, it shows Battery Level as a progress bar, the Charging Status, and — depending on charge/discharge state — the estimated Time to Full or Time Remaining. Many desktop browsers suppress this API for privacy; then a corresponding hint appears.
Storage Quota
Uses navigator.storage.estimate() and shows how much local storage the site may use: Storage Usage as a bar (percentage), Used Space, and Total Quota in human-readable units. The quota is a browser estimate, not a fixed value.
Permissions Status
Queries the state of ten permissions via the Permissions API: Geolocation, Notifications, Camera, Microphone, Clipboard Read, Clipboard Write, Persistent Storage, Push, MIDI, and Screen Wake Lock. Each appears as a badge in one of four states: Granted (green), Prompt (yellow, will ask on access), Denied (red), or Not Supported (gray). Merely querying triggers no permission prompt.
Performance Timing
Reads the (legacy but widely supported) performance.timing API and breaks page construction into phases: DNS Lookup, TCP Connection, SSL/TLS Handshake, Request Time, Response Time, DOM Processing, DOM Interactive, and Page Load. The measurement happens only after the load event, which is why this card fills in last. The values refer to this page load.
HTML5 & CSS3 Capabilities (Modernizr 3.13.1)
This card loads Modernizr 3.13.1 and uses its feature detection: Modernizr checks client-side whether your browser supports a long list of web features (CSS features, HTML5 elements, DOM, ES5/ES6+, audio, video, canvas, forms, storage, SVG, WebRTC, workers, and more). The tool groups the results into categories and shows, per category and overall, how many features are supported (green) and how many are not supported (red).
For Modernizr's probes to work, the page loosens its Content Security Policy specifically for them (including unsafe-eval and data: workers) — this affects only internal feature checks, never user input.
Single-value endpoints
For scripts and the command line there are lean endpoints that return only one value as plain text (text/plain) — handy for fetching your IP via curl, for instance. In the interface, the matching header and connection labels link directly to these endpoints:
?ip— your IP address (REMOTE_ADDR)?agentor?ua— the user agent?accept— the Accept header?enc— Accept-Encoding?lang— Accept-Language?dnt— Do Not Track?port— your source port?protocol— the server protocol
Example: https://www.jpkc.com/tools/info/?ip returns just your IP. Each endpoint outputs a single header or connection value — not a full, documented web API, but deliberately minimal helpers.
JSON export
At the top right, two buttons bundle the entire dataset:
- Copy as JSON — puts all values on the clipboard as formatted JSON.
- Export as JSON — downloads the same data as a file named
browser-info-<date>.json.
The export covers both: the server-side headers and connection data and the client-side values (screen, navigator, plugins, MIME types, WebGL, network, battery, storage, permissions, performance, and all Modernizr features). The file is generated locally in the browser; it is not sent to the server.
Operating limits and privacy
- No storage: The page sets
no-cacheheaders and keeps nothing. Every visit reads fresh. - The server sees only the usual: the server gets your IP and request headers with every request anyway — Info Tools just reflects them back.
- Client data stays local: all browser-side values leave your browser only when you take them out via Copy/Export.
- API dependency: many cards depend on optional browser APIs. If one is missing (or blocked for privacy), that card shows a factual hint instead of an error.
For the intro and target audiences, see the overview page. Concrete walkthroughs are in the examples, strategy and pitfalls in the tips & tricks. You can try it all directly in the tool.