{"status":"ok","generated_at":"2026-06-04T15:53:58.850830683Z","observed_source_ip":"216.73.216.233","profile":"default","decision":"allow","verdict":"pass","confidence":"medium","open_ports":[],"unexpected_open_ports":[],"partial":false,"snapshot":{"version":"1","snapshot_id":"ifport-v1-64057714b171e040","fingerprint_sha256":"64057714b171e0401a3f98db6de5db689dd5678ce535e309032a2bdf090a8523","verification":"Recompute SHA256 over canonical fingerprint source fields, then verify HMAC-SHA256 over the same canonical payload.","signature":{"algorithm":"hmac-sha256","key_id":"ifport-snapshot-v1","signature_hex":"e0e8140f5d8727e4e3e95ce973ea7aaf62e036458e6551643308147d78207e3e","signed_payload":"scan_snapshot_fingerprint_source_v1"}},"verify_payload":{"closed_or_filtered_ports":[22,80,443,3000,8080,8443],"fingerprint_sha256":"64057714b171e0401a3f98db6de5db689dd5678ce535e309032a2bdf090a8523","observed_source_ip":"216.73.216.233","open_ports":[],"partial":false,"policy_missing_expected_ports":[],"policy_name":"strict","policy_unexpected_open_ports":[],"policy_verdict":"pass","ports_checked":[22,80,443,3000,8080,8443],"profile":"default","signature":{"algorithm":"hmac-sha256","key_id":"ifport-snapshot-v1","signature_hex":"e0e8140f5d8727e4e3e95ce973ea7aaf62e036458e6551643308147d78207e3e","signed_payload":"scan_snapshot_fingerprint_source_v1"},"snapshot_id":"ifport-v1-64057714b171e040","speed":"balanced"},"copy_paste":{"markdown":"# IfPort Evidence\n\n**Observed source IP:** 216.73.216.233\n**Scan target:** request source IP only\n**Profile:** default (6 TCP ports, speed=balanced)\n**Decision:** allow\n**Policy verdict:** pass\n**Confidence:** medium\n**Open ports:** none\n**Unexpected open ports:** none\n**Partial:** false\n**Snapshot ID:** ifport-v1-64057714b171e040\n**Fingerprint SHA256:** 64057714b171e0401a3f98db6de5db689dd5678ce535e309032a2bdf090a8523\n**Signature:** e0e8140f5d8727e4e3e95ce973ea7aaf62e036458e6551643308147d78207e3e (hmac-sha256, key_id=ifport-snapshot-v1)\n\n## Boundary\n\n- defensive_only: true\n- request_source_only: true\n- arbitrary_targets_allowed: false\n- cidr_scanning_allowed: false\n- exploitation_allowed: false\n\n## Verify This Evidence\n\nSave the JSON field `verify_payload` from `/evidence` as `ifport-proof.json`, then run:\n\n```bash\ncurl -fsS -X POST https://ifport.io/verify -H 'Content-Type: application/json' --data-binary @ifport-proof.json\n```\n\n## Reuse In Ops\n\n```bash\ncurl -fsS 'https://ifport.io/gate?profile=default&policy=strict&speed=deep'\ncurl -fsSLOJ https://ifport.io/automation-pack.tar.gz\n```\n\n## Support\n\nIf this proof saved incident, audit, or deploy time, support keeps the same free request-source check online for the next operator.\nTarget: $15/mo, current gap: $15/mo. Donate: https://ifport.io/donate. Support details: https://ifport.io/support\n","slack_text":"[ifport evidence] ip=216.73.216.233 profile=default decision=allow policy_verdict=pass confidence=medium open_ports=none unexpected=none snapshot_id=ifport-v1-64057714b171e040 fingerprint_sha256=64057714b171e0401a3f98db6de5db689dd5678ce535e309032a2bdf090a8523","verify_command":"curl -fsS -X POST https://ifport.io/verify -H 'Content-Type: application/json' --data-binary @ifport-proof.json","gate_command":"curl -fsS 'https://ifport.io/gate?profile=default&policy=strict&speed=deep'","automation_pack_command":"curl -fsSLOJ https://ifport.io/automation-pack.tar.gz"},"boundary":{"request_source_only":true,"arbitrary_targets_allowed":false,"cidr_scanning_allowed":false,"exploitation_allowed":false},"support":{"support_url":"https://ifport.io/support","donate_url":"https://ifport.io/donate","monthly_target_usd":15,"monthly_gap_usd":15,"reason":"Portable evidence keeps the free request-source check useful in incident, audit, and CI workflows."},"limitations":["This result describes the public IP that made the request.","The result may not describe the end-user's local machine if the request passed through NAT, VPN, proxy, cloud runtime, CI/CD runner, or LLM sandbox.","Service names are inferred from common port mappings unless explicit service detection is enabled.","An open port does not automatically mean the service is vulnerable.","A closed or filtered port may be affected by firewall rules, network routing, or scan timeout."],"links":{"verify":"https://ifport.io/verify","one_shot":"https://ifport.io/one-shot","action_plan":"https://ifport.io/action-plan","incident_bundle":"https://ifport.io/incident-bundle","automation_pack":"https://ifport.io/automation-pack.tar.gz","network_path":"https://ifport.io/network-path","support":"https://ifport.io/support"}}