{"id":1668,"date":"2026-08-14T18:08:07","date_gmt":"2026-08-14T15:08:07","guid":{"rendered":"https:\/\/scanitex.com\/blog\/masscan-output-formats-oj-ol-ox-og-stdout\/"},"modified":"2026-08-14T18:08:07","modified_gmt":"2026-08-14T15:08:07","slug":"masscan-output-formats-oj-ol-ox-og-stdout","status":"publish","type":"post","link":"https:\/\/scanitex.com\/blog\/en\/masscan-output-formats-oj-ol-ox-og-stdout\/","title":{"rendered":"Masscan Output Formats Explained: -oJ, -oL, -oX, -oG and Writing to stdout"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Hi folks! If you have ever piped a Masscan scan into another tool, you know the feeling: the scan itself takes seconds, and then you spend twenty minutes figuring out why your parser chokes on the output. Masscan has five output formats, a short flag and a long flag for each of them, and a handful of small behaviours that are not written down anywhere obvious.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So we sat down with a real Masscan 1.3.2 build, scanned one of our own servers, and captured what every format actually prints \u2014 byte for byte. No copy-pasting from the man page, no guessing. Everything you see below came out of a terminal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Grab a coffee, open a shell, and let&#8217;s go through all of it: JSON, list, XML, grepable, binary, writing to stdout, and the three gotchas that will bite you when you automate this.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"toc\">Table of Contents<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><a href=\"#at-a-glance\">All Five Formats at a Glance<\/a><\/li>\n\n\n<li><a href=\"#stdout\">Writing to stdout: the <code>-<\/code> Trick<\/a><\/li>\n\n\n<li><a href=\"#json\">-oJ: JSON Output, Field by Field<\/a><\/li>\n\n\n<li><a href=\"#list\">-oL: The List Format<\/a><\/li>\n\n\n<li><a href=\"#xml\">-oX: XML (Nmap-Compatible-ish)<\/a><\/li>\n\n\n<li><a href=\"#grepable\">-oG: Grepable Output<\/a><\/li>\n\n\n<li><a href=\"#binary\">-oB and &#8212;readscan: Scan Once, Convert Later<\/a><\/li>\n\n\n<li><a href=\"#long-form\">The Long Form: &#8212;output-format and &#8212;output-filename<\/a><\/li>\n\n\n<li><a href=\"#gotchas\">Three Gotchas That Break Automation<\/a><\/li>\n\n\n<li><a href=\"#pipelines\">Practical Pipelines<\/a><\/li>\n\n\n<li><a href=\"#conclusion\">Conclusion<\/a><\/li>\n\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"at-a-glance\">All Five Formats at a Glance<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Masscan writes results in five formats. Each has a short flag, and each short flag is just a shortcut for a pair of longer options that we will cover further down.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Flag<\/th><th>Format<\/th><th>Best for<\/th><\/tr><\/thead><tbody>\n<tr><td><code>-oJ<\/code><\/td><td>JSON<\/td><td>Automation, <code>jq<\/code>, feeding databases<\/td><\/tr>\n<tr><td><code>-oL<\/code><\/td><td>List (plain text)<\/td><td>Quick <code>awk<\/code>\/<code>cut<\/code> work, human reading<\/td><\/tr>\n<tr><td><code>-oX<\/code><\/td><td>XML<\/td><td>Tools that already ingest Nmap XML<\/td><\/tr>\n<tr><td><code>-oG<\/code><\/td><td>Grepable<\/td><td>One line per host, classic <code>grep<\/code> pipelines<\/td><\/tr>\n<tr><td><code>-oB<\/code><\/td><td>Binary<\/td><td>Fastest writes; convert to any format later<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Every example below scans the same target \u2014 a server we own \u2014 on ports 80 and 443, at a deliberately low rate. Please only point these commands at hosts you are allowed to scan.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"stdout\">Writing to stdout: the <code>-<\/code> Trick<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the single most searched question about Masscan output, so let&#8217;s answer it first: <strong>yes, a single dash sends results to stdout<\/strong>, and it works with every format flag.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>masscan 203.0.113.10 -p80,443 --rate 100 -oJ -<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The important detail: the progress meter that Masscan prints while running goes to <strong>stderr<\/strong>, not stdout. That means results and progress never get mixed up, and you can pipe cleanly as long as you silence stderr:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>masscan 203.0.113.10 -p80,443 --rate 100 -oJ - 2&gt;\/dev\/null | jq .<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Without <code>2&gt;\/dev\/null<\/code> your terminal fills with <code>rate: 0.00-kpps, 100.00% done<\/code> lines, but your pipe still receives valid data. If a downstream tool ever complains, stderr is almost always the culprit.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"json\">-oJ: JSON Output, Field by Field<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Here is the literal output of a two-port scan, exactly as Masscan 1.3.2 printed it:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[\n{   \"ip\": \"203.0.113.10\",   \"timestamp\": \"1786719570\", \"ports\": [ {\"port\": 443, \"proto\": \"tcp\", \"status\": \"open\", \"reason\": \"syn-ack\", \"ttl\": 58} ] }\n,\n{   \"ip\": \"203.0.113.10\",   \"timestamp\": \"1786719570\", \"ports\": [ {\"port\": 80, \"proto\": \"tcp\", \"status\": \"open\", \"reason\": \"syn-ack\", \"ttl\": 58} ] }\n]<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A few things worth noticing, because they trip people up:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li><strong>It is one JSON array<\/strong>, not newline-delimited JSON. The commas sit on their own lines, which looks odd but parses fine.<\/li>\n\n\n<li><strong><code>timestamp<\/code> is a string<\/strong>, not a number \u2014 note the quotes. If your schema expects an integer, cast it.<\/li>\n\n\n<li><strong><code>ports<\/code> is always an array<\/strong>, even though a single result record only ever contains one port. Index it as <code>.ports[0]<\/code>.<\/li>\n\n\n<li><strong>One record per port, not per host.<\/strong> Two open ports on one IP produce two objects, each repeating the same IP.<\/li>\n\n\n<li><strong>There is no service name.<\/strong> Unlike the grepable format, JSON gives you the port number and nothing else about what runs there.<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The output is valid enough for <code>jq<\/code> to consume directly, which is what most people actually want:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>masscan 203.0.113.10 -p80,443 --rate 100 -oJ - 2&gt;\/dev\/null \n  | jq -r '.[] | \"(.ip) (.ports[0].port) (.ports[0].status)\"'\n\n203.0.113.10 80 open\n203.0.113.10 443 open<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"list\">-oL: The List Format<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The list format is the one to reach for when you just want columns to hand to <code>awk<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#masscan\nopen tcp 443 203.0.113.10 1786719582\nopen tcp 80 203.0.113.10 1786719582\n# end<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The columns are: status, protocol, port, IP, timestamp. Note that the order puts the port <em>before<\/em> the address, which is the opposite of what most people assume when they write their first <code>awk '{print $4}'<\/code>. Both the header and the footer start with <code>#<\/code>, so a single <code>grep -v '^#'<\/code> gives you clean data.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"xml\">-oX: XML (Nmap-Compatible-ish)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">XML output mimics Nmap&#8217;s structure closely enough that many Nmap-aware tools will read it:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?xml version=\"1.0\"?&gt;\n&lt;!-- masscan v1.0 scan --&gt;\n&lt;nmaprun scanner=\"masscan\" start=\"1786719610\" version=\"1.0-BETA\"  xmloutputversion=\"1.03\"&gt;\n&lt;scaninfo type=\"syn\" protocol=\"tcp\" \/&gt;\n&lt;host endtime=\"1786719610\"&gt;&lt;address addr=\"203.0.113.10\" addrtype=\"ipv4\"\/&gt;&lt;ports&gt;&lt;port protocol=\"tcp\" portid=\"443\"&gt;&lt;state state=\"open\" reason=\"syn-ack\" reason_ttl=\"58\"\/&gt;&lt;\/port&gt;&lt;\/ports&gt;&lt;\/host&gt;\n&lt;runstats&gt;\n&lt;finished time=\"1786719621\" timestr=\"2026-08-14 15:00:21\" elapsed=\"11\" \/&gt;\n&lt;hosts up=\"1\" down=\"0\" total=\"1\" \/&gt;\n&lt;\/runstats&gt;\n&lt;\/nmaprun&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The root element is <code>nmaprun<\/code> with <code>scanner=\"masscan\"<\/code>, and you get a <code>runstats<\/code> block with elapsed time and host counts \u2014 handy if you want to log how long a sweep took without timing it yourself.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"grepable\">-oG: Grepable Output<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Grepable output is the only format that tells you the <em>service name<\/em> associated with the port:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Masscan 1.3.2 scan initiated Fri Aug 14 15:00:21 2026\n# Ports scanned: TCP(1;443-443) UDP(0;) SCTP(0;) PROTOCOLS(0;)\nTimestamp: 1786719621\tHost: 203.0.113.10 ()\tPorts: 443\/open\/tcp\/\/https\/\/\n# Masscan done at Fri Aug 14 15:00:32 2026<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Look at the <code>Ports:<\/code> field \u2014 <code>443\/open\/tcp\/\/https\/\/<\/code>. That <code>https<\/code> is a lookup from the IANA port list, not something Masscan detected on the wire. It is a label, not evidence. If you need to know what is really listening, you want banner grabbing, not a name from a table.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The header also documents exactly which port ranges were requested, which makes these files pleasantly self-describing months later.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"binary\">-oB and &#8212;readscan: Scan Once, Convert Later<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the most underused feature in the whole tool, and it is genuinely useful at scale. Write the raw results in binary, then convert them to whatever format you need \u2014 without rescanning:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># scan once, store compactly\nmasscan 203.0.113.10 -p443 --rate 100 -oB scan.bin\n\n# later: turn the same file into JSON\nmasscan --readscan scan.bin -oJ -\n\n# or into XML, or a list, without touching the network again\nmasscan --readscan scan.bin -oX report.xml<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In our test a single-port result took 213 bytes on disk, and <code>--readscan<\/code> reproduced the JSON record perfectly. When you are sweeping millions of addresses, writing binary and converting afterwards saves both disk and CPU during the scan itself \u2014 and the scan is the part you do not want to slow down.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"long-form\">The Long Form: &#8212;output-format and &#8212;output-filename<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Every short flag expands into two long options. These two commands are exactly equivalent:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>masscan 203.0.113.10 -p443 --rate 100 -oJ -\n\nmasscan 203.0.113.10 -p443 --rate 100 --output-format json --output-filename -<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">We verified both produce byte-identical records. The long form matters in one situation: configuration files. Masscan can read its settings from a file, and there you cannot use the short flags \u2014 you write the options as key\/value pairs instead:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># scan.conf\noutput-format = json\noutput-filename = results.json\nrate = 1000\nports = 80,443<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>masscan -c scan.conf 203.0.113.10<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"gotchas\">Three Gotchas That Break Automation<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"gotcha-empty\">1. An Empty Result Is an Empty File<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Scan a closed port and ask for JSON, and you do not get <code>[]<\/code>. You get <strong>nothing at all<\/strong> \u2014 zero bytes, no brackets. We checked this against a port we knew was closed, and the output was completely empty.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This matters because <code>jq<\/code> on an empty input does not return an empty list, it simply produces no output, and a strict parser may throw. Guard for it:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>OUT=$(masscan \"$TARGET\" -p\"$PORTS\" --rate 1000 -oJ - 2&gt;\/dev\/null)\nif [ -z \"$OUT\" ]; then\n  echo \"no open ports found\"\nelse\n  echo \"$OUT\" | jq -r '.[] | .ip'\nfi<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"gotcha-interrupt\">2. Interrupting a Scan Does Not Corrupt the JSON<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You will read in a lot of places that pressing Ctrl+C leaves you with a truncated, unparseable JSON file. We tested exactly that on 1.3.2: started a scan across 3000 ports, interrupted it mid-flight, and looked at the file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It was closed properly, with the final <code>]<\/code> in place and all three discovered ports recorded. So on current versions you can interrupt with reasonable confidence. Still worth validating in a pipeline, but it is not the landmine it is rumoured to be.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"gotcha-banners\">3. Banners Need More Than a Flag<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Adding <code>--banners<\/code> does not automatically enrich your JSON. Masscan uses its own TCP stack, so the operating system sees the incoming replies as unsolicited and answers them with RST packets, killing the connection before a banner arrives.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On Linux you either dedicate a source IP that the kernel does not own (<code>--source-ip<\/code>) or drop the outgoing resets with a firewall rule. On Windows this is not necessary \u2014 Windows does not send those RSTs in the first place. If your <code>--banners<\/code> run comes back empty, this is almost always why.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"pipelines\">Practical Pipelines<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A few one-liners we actually use day to day.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Just the IP:port pairs, ready for the next tool:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>masscan -iL targets.txt -p80,443 --rate 10000 -oJ - 2&gt;\/dev\/null \n  | jq -r '.[] | \"(.ip):(.ports[0].port)\"' &gt; live.txt<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Same thing without jq, using the list format:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>masscan -iL targets.txt -p80,443 --rate 10000 -oL - 2&gt;\/dev\/null \n  | grep -v '^#' | awk '{print $4\":\"$3}' &gt; live.txt<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Count open ports by port number:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>masscan --readscan scan.bin -oL - \n  | grep -v '^#' | awk '{print $3}' | sort -n | uniq -c | sort -rn<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Hand results to Nmap for real service detection:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>masscan -iL targets.txt -p1-65535 --rate 20000 -oJ - 2&gt;\/dev\/null \n  | jq -r '.[] | .ip' | sort -u &gt; hosts.txt\n\nnmap -sV -iL hosts.txt<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">That last pattern is the classic division of labour: Masscan finds what is open across a huge range, Nmap tells you what it actually is on the few hosts that matter.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Short version, if you skipped to the end: use <code>-oJ -<\/code> when a machine reads the output, <code>-oL -<\/code> when you read it yourself, <code>-oG<\/code> when you want the service label, <code>-oX<\/code> when an Nmap-aware tool is next in the chain, and <code>-oB<\/code> when you are scanning at a scale where every write counts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And remember the three quirks: an empty result is an empty file, <code>timestamp<\/code> comes back as a string, and <code>--banners<\/code> needs firewall or source-IP work on Linux before it produces anything.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you would rather not maintain scan nodes, tune rate limits and babysit output files at all, that is precisely what we built <a href=\"https:\/\/scanitex.com\/en\/\">ScaniteX<\/a> for \u2014 you pick the ranges and ports, we run the scan across our own infrastructure and hand you the results ready to download. Either way, happy scanning, and keep it to networks you are allowed to touch.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Hi folks! If you have ever piped a Masscan scan into another tool, you know the feeling: the scan itself takes seconds, and then you spend twenty minutes figuring out why your parser chokes on the output. Masscan has five output formats, a short flag and a long flag for each of them, and a [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_sitemap_exclude":false,"_sitemap_priority":"","_sitemap_frequency":"","footnotes":""},"categories":[1730],"tags":[],"class_list":["post-1668","post","type-post","status-publish","format-standard","hentry","category-network-scanning-and-analysis"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Masscan Output Formats Explained: -oJ, -oL, -oX, -oG and Writing to stdout - \u0412\u0441\u0435 \u043e \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 - \u0411\u043b\u043e\u0433 Scanitex<\/title>\n<meta name=\"description\" content=\"Every Masscan output format with real captured output: JSON, list, XML, grepable, binary. How to write to stdout with a dash, parse with jq, and avoid three gotchas.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/scanitex.com\/blog\/en\/masscan-output-formats-oj-ol-ox-og-stdout\/\" \/>\n<meta property=\"og:locale\" content=\"ru_RU\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Masscan Output Formats Explained: -oJ, -oL, -oX, -oG and Writing to stdout - \u0412\u0441\u0435 \u043e \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 - \u0411\u043b\u043e\u0433 Scanitex\" \/>\n<meta property=\"og:description\" content=\"Every Masscan output format with real captured output: JSON, list, XML, grepable, binary. How to write to stdout with a dash, parse with jq, and avoid three gotchas.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/scanitex.com\/blog\/en\/masscan-output-formats-oj-ol-ox-og-stdout\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0412\u0441\u0435 \u043e \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 - \u0411\u043b\u043e\u0433 Scanitex\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-14T15:08:07+00:00\" \/>\n<meta name=\"author\" content=\"Shifther\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0430\u0432\u0442\u043e\u0440\u043e\u043c\" \/>\n\t<meta name=\"twitter:data1\" content=\"Shifther\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 \u043c\u0438\u043d\u0443\u0442\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/scanitex.com\\\/blog\\\/en\\\/masscan-output-formats-oj-ol-ox-og-stdout\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/scanitex.com\\\/blog\\\/en\\\/masscan-output-formats-oj-ol-ox-og-stdout\\\/\"},\"author\":{\"name\":\"Shifther\",\"@id\":\"https:\\\/\\\/scanitex.com\\\/blog\\\/#\\\/schema\\\/person\\\/002d11f0af888fcdd060cbeee6101571\"},\"headline\":\"Masscan Output Formats Explained: -oJ, -oL, -oX, -oG and Writing to stdout\",\"datePublished\":\"2026-08-14T15:08:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/scanitex.com\\\/blog\\\/en\\\/masscan-output-formats-oj-ol-ox-og-stdout\\\/\"},\"wordCount\":1370,\"commentCount\":0,\"articleSection\":[\"Network scanning and analysis\"],\"inLanguage\":\"ru-RU\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/scanitex.com\\\/blog\\\/en\\\/masscan-output-formats-oj-ol-ox-og-stdout\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/scanitex.com\\\/blog\\\/en\\\/masscan-output-formats-oj-ol-ox-og-stdout\\\/\",\"url\":\"https:\\\/\\\/scanitex.com\\\/blog\\\/en\\\/masscan-output-formats-oj-ol-ox-og-stdout\\\/\",\"name\":\"Masscan Output Formats Explained: -oJ, -oL, -oX, -oG and Writing to stdout - \u0412\u0441\u0435 \u043e \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 - \u0411\u043b\u043e\u0433 Scanitex\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/scanitex.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-08-14T15:08:07+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/scanitex.com\\\/blog\\\/#\\\/schema\\\/person\\\/002d11f0af888fcdd060cbeee6101571\"},\"description\":\"Every Masscan output format with real captured output: JSON, list, XML, grepable, binary. How to write to stdout with a dash, parse with jq, and avoid three gotchas.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/scanitex.com\\\/blog\\\/en\\\/masscan-output-formats-oj-ol-ox-og-stdout\\\/#breadcrumb\"},\"inLanguage\":\"ru-RU\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/scanitex.com\\\/blog\\\/en\\\/masscan-output-formats-oj-ol-ox-og-stdout\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/scanitex.com\\\/blog\\\/en\\\/masscan-output-formats-oj-ol-ox-og-stdout\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\",\"item\":\"https:\\\/\\\/scanitex.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Masscan Output Formats Explained: -oJ, -oL, -oX, -oG and Writing to stdout\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/scanitex.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/scanitex.com\\\/blog\\\/\",\"name\":\"\u0412\u0441\u0435 \u043e \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 - \u0411\u043b\u043e\u0433 Scanitex\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/scanitex.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ru-RU\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/scanitex.com\\\/blog\\\/#\\\/schema\\\/person\\\/002d11f0af888fcdd060cbeee6101571\",\"name\":\"Shifther\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ru-RU\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/08b2207f98bb2dad1a45c0c585f40a9c965055f0d1cea8ae56ec344d65192463?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/08b2207f98bb2dad1a45c0c585f40a9c965055f0d1cea8ae56ec344d65192463?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/08b2207f98bb2dad1a45c0c585f40a9c965055f0d1cea8ae56ec344d65192463?s=96&d=mm&r=g\",\"caption\":\"Shifther\"},\"description\":\"Shifther \u2014 \u044d\u043a\u0441\u043f\u0435\u0440\u0442 \u043f\u043e \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0440\u0430\u0437\u0432\u0435\u0434\u043a\u0435 (OSINT) \u0441 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u0434\u0435\u0441\u044f\u0442\u0438\u043b\u0435\u0442\u043d\u0438\u043c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c. \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043c\u0430\u0441\u0441\u043e\u0432\u043e\u043c \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u0440\u0442\u043e\u0432, \u043a\u0430\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438 \u0430\u0442\u0430\u043a\u0438 (ASM\\\/EASM), \u0430\u0443\u0434\u0438\u0442\u0435 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043c\u0435\u0442\u0440\u0430 \u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u043d\u0435\u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432. \u0410\u0432\u0442\u043e\u0440 \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432 \u043f\u043e masscan, Nmap \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0443 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u043f\u043e\u0440\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b, \u043f\u0435\u043d\u0442\u0435\u0441\u0442\u0435\u0440\u044b \u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u044b \u043f\u043e \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u043d\u0430 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u044b. \u0412 \u0441\u0432\u043e\u0438\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u0445 Shifther \u043e\u043f\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u0435\u0439\u0441\u044b \u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b ScaniteX, \u043f\u043e\u043c\u043e\u0433\u0430\u044f \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0438 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0443\u044f\u0437\u0432\u0438\u043c\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u0440\u0430\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u044e\u0442 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u0438. \u0412\u0441\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u044b \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430 \u0437\u0430\u043a\u043e\u043d\u043d\u043e\u0435, \u044d\u0442\u0438\u0447\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435.\",\"url\":\"https:\\\/\\\/scanitex.com\\\/blog\\\/author\\\/shifther\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Masscan Output Formats Explained: -oJ, -oL, -oX, -oG and Writing to stdout - \u0412\u0441\u0435 \u043e \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 - \u0411\u043b\u043e\u0433 Scanitex","description":"Every Masscan output format with real captured output: JSON, list, XML, grepable, binary. How to write to stdout with a dash, parse with jq, and avoid three gotchas.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/scanitex.com\/blog\/en\/masscan-output-formats-oj-ol-ox-og-stdout\/","og_locale":"ru_RU","og_type":"article","og_title":"Masscan Output Formats Explained: -oJ, -oL, -oX, -oG and Writing to stdout - \u0412\u0441\u0435 \u043e \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 - \u0411\u043b\u043e\u0433 Scanitex","og_description":"Every Masscan output format with real captured output: JSON, list, XML, grepable, binary. How to write to stdout with a dash, parse with jq, and avoid three gotchas.","og_url":"https:\/\/scanitex.com\/blog\/en\/masscan-output-formats-oj-ol-ox-og-stdout\/","og_site_name":"\u0412\u0441\u0435 \u043e \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 - \u0411\u043b\u043e\u0433 Scanitex","article_published_time":"2026-08-14T15:08:07+00:00","author":"Shifther","twitter_card":"summary_large_image","twitter_misc":{"\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0430\u0432\u0442\u043e\u0440\u043e\u043c":"Shifther","\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f":"9 \u043c\u0438\u043d\u0443\u0442"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/scanitex.com\/blog\/en\/masscan-output-formats-oj-ol-ox-og-stdout\/#article","isPartOf":{"@id":"https:\/\/scanitex.com\/blog\/en\/masscan-output-formats-oj-ol-ox-og-stdout\/"},"author":{"name":"Shifther","@id":"https:\/\/scanitex.com\/blog\/#\/schema\/person\/002d11f0af888fcdd060cbeee6101571"},"headline":"Masscan Output Formats Explained: -oJ, -oL, -oX, -oG and Writing to stdout","datePublished":"2026-08-14T15:08:07+00:00","mainEntityOfPage":{"@id":"https:\/\/scanitex.com\/blog\/en\/masscan-output-formats-oj-ol-ox-og-stdout\/"},"wordCount":1370,"commentCount":0,"articleSection":["Network scanning and analysis"],"inLanguage":"ru-RU","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/scanitex.com\/blog\/en\/masscan-output-formats-oj-ol-ox-og-stdout\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/scanitex.com\/blog\/en\/masscan-output-formats-oj-ol-ox-og-stdout\/","url":"https:\/\/scanitex.com\/blog\/en\/masscan-output-formats-oj-ol-ox-og-stdout\/","name":"Masscan Output Formats Explained: -oJ, -oL, -oX, -oG and Writing to stdout - \u0412\u0441\u0435 \u043e \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 - \u0411\u043b\u043e\u0433 Scanitex","isPartOf":{"@id":"https:\/\/scanitex.com\/blog\/#website"},"datePublished":"2026-08-14T15:08:07+00:00","author":{"@id":"https:\/\/scanitex.com\/blog\/#\/schema\/person\/002d11f0af888fcdd060cbeee6101571"},"description":"Every Masscan output format with real captured output: JSON, list, XML, grepable, binary. How to write to stdout with a dash, parse with jq, and avoid three gotchas.","breadcrumb":{"@id":"https:\/\/scanitex.com\/blog\/en\/masscan-output-formats-oj-ol-ox-og-stdout\/#breadcrumb"},"inLanguage":"ru-RU","potentialAction":[{"@type":"ReadAction","target":["https:\/\/scanitex.com\/blog\/en\/masscan-output-formats-oj-ol-ox-og-stdout\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/scanitex.com\/blog\/en\/masscan-output-formats-oj-ol-ox-og-stdout\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/scanitex.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Masscan Output Formats Explained: -oJ, -oL, -oX, -oG and Writing to stdout"}]},{"@type":"WebSite","@id":"https:\/\/scanitex.com\/blog\/#website","url":"https:\/\/scanitex.com\/blog\/","name":"\u0412\u0441\u0435 \u043e \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 - \u0411\u043b\u043e\u0433 Scanitex","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/scanitex.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ru-RU"},{"@type":"Person","@id":"https:\/\/scanitex.com\/blog\/#\/schema\/person\/002d11f0af888fcdd060cbeee6101571","name":"Shifther","image":{"@type":"ImageObject","inLanguage":"ru-RU","@id":"https:\/\/secure.gravatar.com\/avatar\/08b2207f98bb2dad1a45c0c585f40a9c965055f0d1cea8ae56ec344d65192463?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/08b2207f98bb2dad1a45c0c585f40a9c965055f0d1cea8ae56ec344d65192463?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/08b2207f98bb2dad1a45c0c585f40a9c965055f0d1cea8ae56ec344d65192463?s=96&d=mm&r=g","caption":"Shifther"},"description":"Shifther \u2014 \u044d\u043a\u0441\u043f\u0435\u0440\u0442 \u043f\u043e \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0440\u0430\u0437\u0432\u0435\u0434\u043a\u0435 (OSINT) \u0441 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u0434\u0435\u0441\u044f\u0442\u0438\u043b\u0435\u0442\u043d\u0438\u043c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c. \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043c\u0430\u0441\u0441\u043e\u0432\u043e\u043c \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u0440\u0442\u043e\u0432, \u043a\u0430\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438 \u0430\u0442\u0430\u043a\u0438 (ASM\/EASM), \u0430\u0443\u0434\u0438\u0442\u0435 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u043f\u0435\u0440\u0438\u043c\u0435\u0442\u0440\u0430 \u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u043d\u0435\u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432. \u0410\u0432\u0442\u043e\u0440 \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432 \u043f\u043e masscan, Nmap \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0443 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u043f\u043e\u0440\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b, \u043f\u0435\u043d\u0442\u0435\u0441\u0442\u0435\u0440\u044b \u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u044b \u043f\u043e \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u043d\u0430 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u044b. \u0412 \u0441\u0432\u043e\u0438\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u0445 Shifther \u043e\u043f\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u0435\u0439\u0441\u044b \u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b ScaniteX, \u043f\u043e\u043c\u043e\u0433\u0430\u044f \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0438 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0443\u044f\u0437\u0432\u0438\u043c\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u0440\u0430\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u044e\u0442 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u0438. \u0412\u0441\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u044b \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430 \u0437\u0430\u043a\u043e\u043d\u043d\u043e\u0435, \u044d\u0442\u0438\u0447\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435.","url":"https:\/\/scanitex.com\/blog\/author\/shifther\/"}]}},"_links":{"self":[{"href":"https:\/\/scanitex.com\/blog\/wp-json\/wp\/v2\/posts\/1668","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scanitex.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scanitex.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scanitex.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/scanitex.com\/blog\/wp-json\/wp\/v2\/comments?post=1668"}],"version-history":[{"count":0,"href":"https:\/\/scanitex.com\/blog\/wp-json\/wp\/v2\/posts\/1668\/revisions"}],"wp:attachment":[{"href":"https:\/\/scanitex.com\/blog\/wp-json\/wp\/v2\/media?parent=1668"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scanitex.com\/blog\/wp-json\/wp\/v2\/categories?post=1668"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scanitex.com\/blog\/wp-json\/wp\/v2\/tags?post=1668"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}