{"id":714,"date":"2019-11-15T21:51:55","date_gmt":"2019-11-15T20:51:55","guid":{"rendered":"https:\/\/www.tiraquelibras.com\/blog\/?p=714"},"modified":"2019-12-26T17:00:16","modified_gmt":"2019-12-26T16:00:16","slug":"ipwhois-en-python3-venv-y-comando-personalizado-de-sistema","status":"publish","type":"post","link":"https:\/\/blog.tiraquelibras.com\/?p=714","title":{"rendered":"IPWhois en Python3 venv y comando personalizado de sistema"},"content":{"rendered":"<p>En el d\u00eda a d\u00eda de un inform\u00e1tico es habitual tener que consultar los datos de registro relacionados a una IP, como el propietario, contacto, organizaci\u00f3n, AS,&#8230; Para ello podemos consultar la web del <strong>Registro Regional de Internet<\/strong>\u00a0o\u00a0<em><strong>RIR<\/strong><\/em> que gestiona el direccionamiento al que pertenece la IP (ver listado completo pinchando <a title=\"https:\/\/es.wikipedia.org\/wiki\/Registro_Regional_de_Internet\" href=\"https:\/\/es.wikipedia.org\/wiki\/Registro_Regional_de_Internet\" type=\"\" data-from-md=\"\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">aqu\u00ed)<\/a>, o instalar y hacer uso del paquete\u00a0<em><strong>Whois<\/strong><\/em>\u00a0en la distribuci\u00f3n que estemos utilizando.<\/p>\n<p>Otra opci\u00f3n es desarrollar nuestra propia herramienta que se ajuste a lo que queremos obtener, sin necesidad de revisar las p\u00e1ginas web de todos los\u00a0<em><strong>RIR<\/strong><\/em> ni instalar un paquete adicional en nuestro servidor. Si adem\u00e1s creamos un comando de sistema para ejecutar este comando ajustaremos m\u00e1s a\u00fan esta herramienta a nuestras necesidades.<\/p>\n<p>El objetivo de esta entrada es compartir una sencilla herramienta desarrollada dentro de un <strong><em>entorno virtual<\/em> <\/strong>en <strong>Python 3<\/strong>, junto a la creaci\u00f3n de un <strong><em>comando de sistema<\/em> <\/strong>personalizado para automatizar su ejecuci\u00f3n.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_76 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Tabla de contenidos<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69dfe9dc2743e\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69dfe9dc2743e\"  aria-label=\"Alternar\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=714\/#Instalacion_Python_pip_y_vitualenv\"  rel=\"nofollow\" target=\"_blank\">Instalaci\u00f3n Python pip y vitualenv<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=714\/#Centos_7\"  rel=\"nofollow\" target=\"_blank\">Centos 7<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=714\/#Debian\"  rel=\"nofollow\" target=\"_blank\">Debian<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-4 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=714\/#Crear_y_activar_entorno_virtual\"  rel=\"nofollow\" target=\"_blank\">Crear y activar entorno virtual<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-5 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=714\/#Librerias_necesarias\"  rel=\"nofollow\" target=\"_blank\">Librer\u00edas necesarias<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-6 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=714\/#Codigo_de_la_herramienta\"  rel=\"nofollow\" target=\"_blank\">C\u00f3digo de la herramienta<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-7 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=714\/#Comando_de_sistema_personalizado\"  rel=\"nofollow\" target=\"_blank\">Comando de sistema personalizado<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-8 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=714\/#Conclusion\"  rel=\"nofollow\" target=\"_blank\">Conclusi\u00f3n<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-9 external external_icon\" href=\"https:\/\/blog.tiraquelibras.com\/?p=714\/#Enlaces_relacionados\"  rel=\"nofollow\" target=\"_blank\">Enlaces relacionados<\/a><\/li><\/ul><\/nav><\/div>\n<h1 id=\"instalaci\u00f3n-python-pip-y-vitualenv\"><span class=\"ez-toc-section\" id=\"Instalacion_Python_pip_y_vitualenv\"><\/span>Instalaci\u00f3n Python pip y vitualenv<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>Lo primero que haremos es instalar\u00a0<em><strong>pip<\/strong><\/em> y a continuaci\u00f3n el m\u00f3dulo de <strong>entornos virtuales<\/strong>\u00a0para\u00a0<strong>Python 3<\/strong>.<\/p>\n<h2 id=\"centos-7\"><span class=\"ez-toc-section\" id=\"Centos_7\"><\/span>Centos 7<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\"># Instalamos el repositorio EPEL\r\nsudo yum install epel-release\r\n# Instalamos Python 34 y el gestor de paquetes python-pip\r\nsudo yum install python34 python-pip\r\n# Actualizamos pip e instalamos los entornos virtuales\r\npip install -U pip\r\npip install -U virtualenv<\/pre>\n<h2 id=\"debian\"><span class=\"ez-toc-section\" id=\"Debian\"><\/span>Debian<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\"># Actualizamos los repositorios\r\nsudo apt-get update\r\n# Instalamos pip para Python 3\r\nsudo apt-get install build-essential libssl-dev libffi-dev python-dev\r\nsudo apt-get install python3-pip\r\n# Ahora los entornos virtuales\r\nsudo pip3 install virtualenv<\/pre>\n<p>&nbsp;<\/p>\n<h1 id=\"crear-y-activar-entorno-virtual\"><span class=\"ez-toc-section\" id=\"Crear_y_activar_entorno_virtual\"><\/span>Crear y activar entorno virtual<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>Nos ubicamos en el directorio en donde se ejecutar\u00e1 nuestra herramienta. Yo suelo trabajar en el directorio\u00a0<em><strong>\/usr\/local\/scripts<\/strong><\/em>, pero la decisi\u00f3n final la dejo a tu gusto teniendo en cuenta que hay que indicar este en el comando de sistema que crearemos m\u00e1s adelante.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">mkdir -p \/usr\/local\/scripts\/ipwhois &amp;&amp; cd \/usr\/local\/scripts\/ipwhois<\/pre>\n<p>Creamos el entorno virtual sobre el que se ejecutar\u00e1 nuestra herramienta, el cual lamaremos <em><strong>ipwhois_project<\/strong><\/em>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">python3 -m virtualenv ipwhois_project<\/pre>\n<p>Activamos el entorno virtual.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">source ipwhois_project\/bin\/activate<\/pre>\n<p>El\u00a0<em><strong>prompt<\/strong><\/em>\u00a0cambia indicando que nos encontramos en el entorno virtual, y por tanto todo m\u00f3dulo de Python que instalemos solo se aplicar\u00e1 a este entorno creado.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">(ipwhois_project) sergio@sergio-VirtualBox:\/usr\/local\/scripts\/ipwhois$<\/pre>\n<p>&nbsp;<\/p>\n<h1 id=\"librer\u00edas-necesarias\"><span class=\"ez-toc-section\" id=\"Librerias_necesarias\"><\/span>Librer\u00edas necesarias<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>Ahora instalamos las librer\u00edas necesarias para ejecutar nuestra herramienta.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">sudo pip install IPy ipwhois pprint<\/pre>\n<p>Recuerda que estos m\u00f3dulos solo aplicar\u00e1n en el entorno virtual que nos encontramos, nunca a la instalaci\u00f3n global de\u00a0<strong>Python<\/strong>. Esto quiere decir que una vez desactivemos el entorno virtual no podr\u00e1n ser utilizados.<\/p>\n<h1 id=\"c\u00f3digo-de-la-herramienta\"><span class=\"ez-toc-section\" id=\"Codigo_de_la_herramienta\"><\/span>C\u00f3digo de la herramienta<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>A continuaci\u00f3n os muestro el c\u00f3digo de la herramienta, sin entrar en muchos detalles m\u00e1s que los comentarios que hay entre l\u00edneas.<\/p>\n<p>Creamos el archivo que contrend\u00e1 el c\u00f3digo.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\"># Creamos el archivo para la herramienta\r\ntouch ipWhois.py\r\n# Cambiamos los permisos para el archivo\r\nchmod 775 ipWhois.py\r\n# Editamos el archivo\r\nnano ipWhois.py<\/pre>\n<p>&nbsp;<\/p>\n<p>Y agregamos el c\u00f3digo.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\"># WHOIS sobre IP\r\n# 5-11-19\r\n# Sergio Bastian Rodriguez\r\n# https:\/\/blog.tiraquelibras.com\/?p=714\r\n\r\n# Importamos las librerias necesarias\r\nimport sys, pprint\r\nfrom ipwhois import IPWhois\r\nfrom IPy import IP\r\n\r\n# Obtenemos el argumento indicado al ejecutar la herramienta\r\nip = sys.argv[1]\r\n\r\n# Logica de la heramienta\r\ntry:\r\n        # Confirmamos si el argumento es una direccion IP\r\n        ipType = IP(ip)\r\n        \r\n        # Confirmamos si la direccion IP es publica o no\r\n        if ipType.iptype() == 'PUBLIC':\r\n                \r\n                # De ser publica obtenemos los datos del whois y los mostramos\r\n                obj = IPWhois(ip)\r\n                results = obj.lookup_whois()\r\n                pprint.pprint(results)\r\n        else:\r\n                # De no ser publica lo indicamos en un mensaje de error\r\n                raise Exception('The IP ' + ip + ' is not public.')\r\n\r\nexcept Exception as e:\r\n        # Si el argumento no es una direcci\u00f3n IP valida, o no es publica, mostramos el mensaje con el error\r\n        print('ERROR - The argument added is not correct.\\n%s' % (str(e)))\r\n\r\nfinally:\r\n        # Para finalizar mostramos la informaci\u00f3n del creador de la herramienta\r\n        print('\\n***Herramienta desarrollada por:\\n Tiraquelibras.com (https:\/\/blog.tiraquelibras.com\/?p=714)***')<\/pre>\n<p>Si ejecutamos el comando consultando una IP u otra cosa, como por ejemplo un dominio, nos mostrar\u00e1 la informaci\u00f3n de la IP consultada o nos mostrar\u00e1 un error. Te invito a que lo pruebes para ver el resultado.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">python ipWhois.py 85.152.18.44\r\npython ipwhois.py tiraqueliras.com<\/pre>\n<p>Un ejemplo del resultado si consultamos la informaci\u00f3n referente a la IP de los <strong>DNS<\/strong> de <em><strong>Google:<\/strong><\/em><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\"># ipwhois 8.8.8.8\r\n{'asn': '15169',\r\n 'asn_cidr': '8.8.8.0\/24',\r\n 'asn_country_code': 'US',\r\n 'asn_date': '1992-12-01',\r\n 'asn_description': 'GOOGLE - Google LLC, US',\r\n 'asn_registry': 'arin',\r\n 'nets': [{'address': '100 CenturyLink Drive',\r\n           'cidr': '8.0.0.0\/9',\r\n           'city': 'Monroe',\r\n           'country': 'US',\r\n           'created': '1992-12-01',\r\n           'description': 'Level 3 Parent, LLC',\r\n           'emails': ['ipaddressing@level3.com'],\r\n           'handle': 'NET-8-0-0-0-1',\r\n           'name': 'LVLT-ORG-8-8',\r\n           'postal_code': '71203',\r\n           'range': '8.0.0.0 - 8.127.255.255',\r\n           'state': 'LA',\r\n           'updated': '2018-04-23'},\r\n          {'address': '1600 Amphitheatre Parkway',\r\n           'cidr': '8.8.8.0\/24',\r\n           'city': 'Mountain View',\r\n           'country': 'US',\r\n           'created': '2014-03-14',\r\n           'description': 'Google LLC',\r\n           'emails': ['network-abuse@google.com', 'arin-contact@google.com'],\r\n           'handle': 'NET-8-8-8-0-1',\r\n           'name': 'LVLT-GOGL-8-8-8',\r\n           'postal_code': '94043',\r\n           'range': None,\r\n           'state': 'CA',\r\n           'updated': '2014-03-14'}],\r\n 'nir': None,\r\n 'query': '8.8.8.8',\r\n 'raw': None,\r\n 'raw_referral': None,\r\n 'referral': None}\r\n\r\n***Herramienta desarrollada por:\r\n Tiraquelibras.com (https:\/\/blog.tiraquelibras.com\/?p=714)***\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h1 id=\"comando-de-sistema-personalizado\"><span class=\"ez-toc-section\" id=\"Comando_de_sistema_personalizado\"><\/span>Comando de sistema personalizado<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>Creamos el archivo en donde agregaremos el c\u00f3digo que ejecutar\u00e1 nuestra herramienta, activando y desactivando el entorno virtual autom\u00e1ticamente.<\/p>\n<p>Primero creamos el archivo que ejecutar\u00e1 el programa.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\"># Creamos el archivo\r\nsudo touch \/usr\/bin\/ipwhois\r\n# Cambiamos los permisos para que lo pueda ejecutar cualquier usuario\r\nsudo chmod 777 \/usr\/bin\/ipwhois<\/pre>\n<p>Agregamos el c\u00f3digo\u00a0<em><strong>Bash<\/strong><\/em>\u00a0al comando creado.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">sudo nano \/usr\/bin\/ipwhois<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">case $1 in\r\n\r\n        -h | --help)\r\n                echo -e \"Whois of IP address.\\nOnly one IP by command.\\nipwhois [-h|--help]\"\r\n                ;;\r\n        *)\r\n                # Confirmamos si se indica un unico argumento.\r\n                # De lo contrario se mostrara un error.\r\n                if [ $# -ne 1 ]; then\r\n                \r\n                        # De no cumplirse mostramos un error\r\n                        echo -e \"More than one argument or none has been indicated. Please, add only one argument.\\n\"\r\n                else\r\n                        # Si se cumple activamos el entorno virtual\r\n                        source \/usr\/local\/scripts\/ipwhois\/ipwhois_project\/bin\/activate\r\n                        \r\n                        # Ejecutamos la herramienta con el argumento indicado\r\n                        python \/usr\/local\/scripts\/ipwhois\/ipWhois.py $1\r\n                        \r\n                        # Desactivamos el entorno virtual\r\n                        deactivate\r\n                fi\r\n                ;;\r\nesac<\/pre>\n<p>Para finalizar podemos ejecutar el nuevo comando para ver la ayuda de la siguiente forma.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\"># ipwhois --help\r\n\r\nWhois of IP address.\r\nOnly one IP by command.\r\nipwhois [-h|--help]<\/pre>\n<p>Ahora si consultamos una direcci\u00f3n IP se mostrar\u00e1 la informaci\u00f3n de su registro desde la propia l\u00ednea de comandos\u00a0<strong>CLI<\/strong>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">ipwhois 85.152.18.44\r\nipwhois tiraquelibras.com<\/pre>\n<p>&nbsp;<\/p>\n<h1 id=\"conclusi\u00f3n\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusi\u00f3n<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>Con unas pocas l\u00edneas de c\u00f3digo podemos crear nuestras propias herramientas que se adapten mejor a las necesidades que buscamos.<\/p>\n<p>&nbsp;<\/p>\n<h1 id=\"enlaces-relacionados\"><span class=\"ez-toc-section\" id=\"Enlaces_relacionados\"><\/span>Enlaces relacionados<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p>Instalaci\u00f3n virtualenv para Python3 en Debian\u00a0<a title=\"https:\/\/naysan.ca\/2019\/08\/05\/install-python-3-virtualenv-on-ubuntu\/\" href=\"https:\/\/naysan.ca\/2019\/08\/05\/install-python-3-virtualenv-on-ubuntu\/\" type=\"\" data-from-md=\"\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">aqu\u00ed<\/a><\/p>\n<p>Instalaci\u00f3n virtualenv para Python3 en Centos 7\u00a0<a title=\"https:\/\/blog.teststation.org\/centos\/python\/2016\/05\/11\/installing-python-virtualenv-centos-7\/\" href=\"https:\/\/blog.teststation.org\/centos\/python\/2016\/05\/11\/installing-python-virtualenv-centos-7\/\" type=\"\" data-from-md=\"\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">aqu\u00ed<\/a><\/p>\n<p>M\u00f3dulo ipwhois para Python3\u00a0<a title=\"https:\/\/pypi.org\/project\/ipwhois\/\" href=\"https:\/\/pypi.org\/project\/ipwhois\/\" type=\"\" data-from-md=\"\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">aqu\u00ed<\/a><\/p>\n<p>M\u00f3dulo IPy para Python3\u00a0<a title=\"https:\/\/pypi.org\/project\/IPy\/\" href=\"https:\/\/pypi.org\/project\/IPy\/\" type=\"\" data-from-md=\"\" class=\"external external_icon\" rel=\"nofollow\" target=\"_blank\">aqu\u00ed<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En el d\u00eda a d\u00eda de un inform\u00e1tico es habitual tener que consultar los datos de registro relacionados a una IP, como el propietario, contacto,<span class=\"read-more-link\"><a class=\"read-more\" href=\"https:\/\/blog.tiraquelibras.com\/?p=714\">Read More<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":717,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,22],"tags":[93],"class_list":["post-714","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacion","category-ti","tag-ripe-whois-ip-python"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/posts\/714","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=714"}],"version-history":[{"count":0,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/posts\/714\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/media\/717"}],"wp:attachment":[{"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=714"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=714"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=714"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}