<script>ecbox_number=1;</script><style type="text/css" style="display:none;" id="easycode_inline_style">
.easycodebox li {white-space:pre !important; word-wrap:normal !important; word-break:keep-all; list-style-type:decimal-leading-zero !important;}
.easycodebox .main ol {font-family: 'Consolas','Consolas_WEB',Consolas,monaco,monospace !important; font-size: 90% !important;}

.easycodebox .headbar .message:after {content:"- Show or hide the code";}</style><script>ecbox_number=2;</script><script>ecbox_number=3;</script><script>ecbox_number=4;</script><script>ecbox_number=5;</script><script>ecbox_number=6;</script><script>ecbox_number=7;</script><script>ecbox_number=8;</script><script>ecbox_number=9;</script><script>ecbox_number=10;</script><script>ecbox_number=11;</script><script>ecbox_number=12;</script><script>ecbox_number=13;</script><script>ecbox_number=14;</script>{"id":89,"date":"2016-09-12T20:32:45","date_gmt":"2016-09-12T20:32:45","guid":{"rendered":"http:\/\/taptronics.com\/taptronics\/?p=89"},"modified":"2017-12-01T16:10:40","modified_gmt":"2017-12-01T16:10:40","slug":"another-swiss-army-knife-for-plc-networks-raspberry-pi-3","status":"publish","type":"post","link":"http:\/\/taptronics.com\/taptronics\/another-swiss-army-knife-for-plc-networks-raspberry-pi-3\/","title":{"rendered":"Another &#8220;Swiss Army Knife&#8221;  for PLC Networks : Raspberry Pi 3"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-93\" src=\"http:\/\/taptronics.com\/taptronics\/wp-content\/uploads\/2016\/09\/network-300x184.png\" alt=\"network\" width=\"795\" height=\"488\" srcset=\"http:\/\/taptronics.com\/taptronics\/wp-content\/uploads\/2016\/09\/network-300x184.png 300w, http:\/\/taptronics.com\/taptronics\/wp-content\/uploads\/2016\/09\/network-768x471.png 768w, http:\/\/taptronics.com\/taptronics\/wp-content\/uploads\/2016\/09\/network-1024x628.png 1024w, http:\/\/taptronics.com\/taptronics\/wp-content\/uploads\/2016\/09\/network-800x491.png 800w, http:\/\/taptronics.com\/taptronics\/wp-content\/uploads\/2016\/09\/network.png 1246w\" sizes=\"(max-width: 795px) 100vw, 795px\" \/><\/p>\n<p><span style=\"color: #000000;\">We can turn Raspberry pi 3 as\u00a0 AP(Access point) and can be utilized with wireless devices to scan PLCs or field devices network.<br \/>\n<\/span><\/p>\n<h3><span style=\"color: #000000;\"><span style=\"text-decoration: underline;\"><strong>Requirements:<\/strong><\/span><br \/>\n<\/span><\/h3>\n<p><span style=\"color: #000000;\">1.Raspberry pi 3 <\/span><\/p>\n<p><span style=\"color: #000000;\">2.Power Supply (for Raspberry)<\/span><\/p>\n<p><span style=\"color: #000000;\">3.Wireless device ( tablet, laptop, or cellphone)<\/span><\/p>\n<p><span style=\"color: #000000;\">4.Ethernet cable<\/span><\/p>\n<p><span style=\"color: #000000;\">Keep in the mind that the following procedure is for Raspberry Pi 3 (Jessie raspbian)\u00a0 which I am quite sure it might work for some\u00a0 older versions with slightly modifications. I got the script from several sources online and I did modification to work on\u00a0 PLC network that use static IP addresses.<\/span><\/p>\n<h2><span style=\"color: #000000;\"><strong>1.Install hostapd, udhcpd and iptables<\/strong><\/span><\/h2>\r\n\t<div class='easycodebox  ' id='easycodebox-1'>\r\n\t<div class='headbar' onclick='EasyCodeClass(this).ShowCode();'  title=\"Click here to show\/hide the code.\"> Install the necessary tools<\/div>\r\n\t<div class='flex-box'>\r\n\t<div class='scrollbox'  ondblclick=\"EasyCodeClass(this).editCode(1);\">\r\n\t<div class='ecside'>&nbsp;<\/div>\r\n\t<div class='main'><ol>\n<li>sudo\u00a0apt-get\u00a0update<\/li>\n<li>sudo\u00a0apt-get\u00a0install\u00a0hostapd\u00a0udhcpd\u00a0-y<\/li>\n<li>sudo\u00a0apt-get\u00a0install\u00a0iptables\u00a0-y<\/li>\n<li><\/span><\/li><\/ol><\/div>\r\n\t<\/div><\/div><\/div><p>&nbsp;<\/p>\n<h3><span style=\"color: #000000;\"><strong>2. Create back up for these files, in case of installation failed.<\/strong><\/span><\/h3>\r\n\t<div class='easycodebox  ' id='easycodebox-2'>\r\n\t<div class='headbar' onclick='EasyCodeClass(this).ShowCode();'  title=\"Click here to show\/hide the code.\"> backup<\/div>\r\n\t<div class='flex-box'>\r\n\t<div class='scrollbox'  ondblclick=\"EasyCodeClass(this).editCode(1);\">\r\n\t<div class='ecside'>&nbsp;<\/div>\r\n\t<div class='main'><ol>\n<li>sudo\u00a0touch\u00a0\/etc\/network\/interfaces.bak<\/li>\n<li>sudo\u00a0cp\u00a0\/etc\/network\/interfaces\u00a0\/etc\/network\/interfaces.bak<\/li>\n<li>sudo\u00a0touch\u00a0\/etc\/dhcpcd.bak<\/li>\n<li>sudo\u00a0cp\u00a0\/etc\/dhcpcd.conf\u00a0\/etc\/dhcpcd.bak<\/span><\/li><\/ol><\/div>\r\n\t<\/div><\/div><\/div><p>&nbsp;<\/p>\n<h3><strong><span style=\"color: #000000;\">3.Build the following\u00a0 script (mywifi.sh).<\/span><\/strong><\/h3>\n<p><span style=\"color: #000000;\">Basically this script is to create several configuration (conf) files and will load them into default ones. DHCP (Dynamic Host Configuration Protocol)\u00a0 configuration will give away the dynamic\u00a0 IP addresses between 192.168.42.2 and 192.168.42.20 to your wireless devices and to access wlan0\u00a0 meanwhile it will give a static IP address for raspberry pi: 192.168.42.1\u00a0 . For older version , it is necessary to setup configuration on \/etc\/network\/interfaces for interfacing with network (wlan0,eth0, etc )\u00a0 but on newest Jessie installation, the network configuration is located on \/etc\/dhcpcd.conf . HostAPD configuration will create hotspot and APN ( Access Point Name). The next is NAT (Network Address Translation ) which works as a translator between external router that connect to eth0 and WIFI guests who access\u00a0 wlan0.\u00a0 \u00a0 :<\/span><\/p>\r\n\t<div class='easycodebox  ' id='easycodebox-3'>\r\n\t<div class='headbar' onclick='EasyCodeClass(this).ShowCode();'  title=\"Click here to show\/hide the code.\"> WIFIhot<\/div>\r\n\t<div class='flex-box'>\r\n\t<div class='scrollbox'  ondblclick=\"EasyCodeClass(this).editCode(1);\">\r\n\t<div class='ecside'>&nbsp;<\/div>\r\n\t<div class='main'><ol>\n<li>#! \/bin\/bash<\/li>\n<li> #1.\u00a0Configure\u00a0DHCP----------------------------------------------<\/li>\n<li>x=tem.tem<\/li>\n<li>touch\u00a0$x<\/li>\n<li>sudo\u00a0rm\u00a0-rf\u00a0\/etc\/default\/udhcpd<\/li>\n<li>#sudo\u00a0mkdir\u00a0\/etc\/default<\/li>\n<li>sudo\u00a0touch\u00a0\/etc\/default\/udhcpd<\/li>\n<li>echo\u00a0\"start\u00a0192.168.42.2\u00a0\"\u00a0&gt;&gt;\u00a0\u00a0\u00a0$x<\/li>\n<li>echo\u00a0\"end\u00a0192.168.42.20\"\u00a0&gt;&gt;\u00a0$x<\/li>\n<li>echo\u00a0\"interface\u00a0wlan0\"\u00a0&gt;&gt;\u00a0$x<\/li>\n<li>echo\u00a0\"remaining\u00a0yes\"\u00a0&gt;&gt;\u00a0$x<\/li>\n<li>echo\u00a0\"opt\u00a0dns\u00a08.8.8.8\u00a04.2.2.2\"\u00a0&gt;&gt;\u00a0$x<\/li>\n<li>echo\u00a0\"opt\u00a0subnet\u00a0255.255.255.0\"\u00a0&gt;&gt;\u00a0$x<\/li>\n<li>echo\u00a0\"opt\u00a0router\u00a0192.168.42.1\"\u00a0&gt;&gt;\u00a0$x<\/li>\n<li>echo\u00a0\"opt\u00a0lease\u00a0864000\"\u00a0&gt;&gt;\u00a0$x<\/li>\n<li>sudo\u00a0mv\u00a0\u00a0$x\u00a0\/etc\/udhcpd.conf<\/li>\n<li>touch\u00a0$x<\/li>\n<li>echo\u00a0\u00a0\"#\u00a0Comment\u00a0the\u00a0following\u00a0line\u00a0to\u00a0enable\"\u00a0&gt;&gt;\u00a0$x<\/li>\n<li>echo\u00a0\"#DHCPD_ENABLED=\\\"no\\\"\"\u00a0&gt;&gt;\u00a0$x<\/li>\n<li>echo\u00a0\"#\u00a0Options\u00a0to\u00a0pass\u00a0to\u00a0busybo&gt;&gt;\u00a0$x<\/li>\n<li>echo\u00a0\"DHCPD_OPTS=\\\"-S\\\"\"\u00a0&gt;&gt;\u00a0$x<\/li>\n<li>sudo\u00a0mv\u00a0$x\u00a0\u00a0\/etc\/default\/udhcpd<\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0#give\u00a0the\u00a0Pi\u00a0a\u00a0static\u00a0IP\u00a0address<\/li>\n<li>sudo\u00a0ifconfig\u00a0wlan0\u00a0192.168.42.1<\/li>\n<li>#2.------------------------------SETUP AP (Access Point) Interface -------------------------------<\/li>\n<li>touch\u00a0 $x<\/li>\n<li>echo \"source-directory \/etc\/network\/interfaces.d\" &gt;&gt; $x<\/li>\n<li>echo \"auto lo\" &gt;&gt; $x<\/li>\n<li>echo \"iface lo inet loopback\" &gt;&gt; $x<\/li>\n<li>echo \"\" &gt;&gt; $x<\/li>\n<li>echo \"auto eth0\" &gt;&gt; $x<\/li>\n<li>echo \"iface eth0 inet dhcp\" &gt;&gt; $x<\/li>\n<li>echo \"\" &gt;&gt; $x<\/li>\n<li>echo \"iface wlan0 inet static\" &gt;&gt; $x<\/li>\n<li>echo \"\u00a0\u00a0\u00a0 address 192.168.42.1\" &gt;&gt; $x<\/li>\n<li>echo \"\u00a0\u00a0\u00a0 netmask 255.255.255.0\" &gt;&gt; $x<\/li>\n<li>echo \"\u00a0\u00a0\u00a0 wireless-power off\" &gt;&gt; $x<\/li>\n<li>echo \"\" &gt;&gt; $x<\/li>\n<li>echo \"iface default inet dhcp\" &gt;&gt; $x<\/li>\n<li>echo \"up iptables-restore &lt; \/etc\/iptables.ipv4.nat\" &gt;&gt; $x<\/li>\n<li>sudo chmod --reference=\/etc\/network\/interfaces $x<\/li>\n<li>sudo chown --reference=\/etc\/network\/interfaces $x<\/li>\n<li>sudo mv $x\u00a0 \/etc\/network\/interfaces.ap<\/li>\n<li>sudo chmod --reference \/etc\/network\/interfaces.bk \/etc\/network\/interfaces.ap<\/li>\n<li>#3. Configure HostAPD------------------------------------------------<\/li>\n<li>touch $x<\/li>\n<li>echo \"interface=wlan0\" &gt;&gt; $x<\/li>\n<li>echo \"driver=nl80211\" &gt;&gt; $x<\/li>\n<li>echo \"ssid=WifiPLC\" &gt;&gt; $x<\/li>\n<li>echo \"hw_mode=g\" &gt;&gt; $x<\/li>\n<li>echo \"channel=6\" &gt;&gt; $x<\/li>\n<li>echo \"macaddr_acl=0\" &gt;&gt; $x<\/li>\n<li>echo \"auth_algs=1\" &gt;&gt; $x<\/li>\n<li>echo \"ignore_broadcast_ssid=0\" &gt;&gt; $x<\/li>\n<li>echo\u00a0 \"wpa=0\" &gt;&gt; $x<\/li>\n<li>echo \"wpa_passphrase=My_Passphrase\" &gt;&gt; $x<\/li>\n<li>echo \"wpa_key_mgmt=WPA-PSK\" &gt;&gt; $x<\/li>\n<li>echo \"wpa_pairwise=TKIP\" &gt;&gt; $x<\/li>\n<li>echo \"rsn_pairwise=CCMP\" &gt;&gt; $x<\/li>\n<li>echo \"ieee80211n=1\"\u00a0\u00a0 &gt;&gt; $x<\/li>\n<li>echo \"wmm_enabled=1\" &gt;&gt; $x<\/li>\n<li>echo \"ht_capab=[HT40][SHORT-GI-20][DSSS_CCK_40]\" &gt;&gt; $x<\/li>\n<li>sudo mv\u00a0 $x\u00a0 \/etc\/hostapd\/hostapd.conf<\/li>\n<li>#4. Configure NAT--------------------------------------------<\/li>\n<li>touch $x<\/li>\n<li>echo \"DAEMON_CONF=\\\"\/etc\/hostapd\/hostapd.conf\\\"\" &gt;&gt; $x<\/li>\n<li>sudo mv $x \/etc\/default\/hostapd<\/li>\n<li>touch $x<\/li>\n<li>sudo sh -c \"echo 1 &gt;&gt; \/proc\/sys\/net\/ipv4\/ip_forward\"<\/li>\n<li>sudo echo \"net.ipv4.ip_forward=1\" &gt;&gt; \/etc\/sysctl.conf<\/li>\n<li>sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE<\/li>\n<li>sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT<\/li>\n<li>sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT<\/li>\n<li>sudo sh -c \"iptables-save &gt;&gt; \/etc\/iptables.ipv4.nat\"<\/li>\n<li>#------------------------------5. Fire it up! R----------------------------------------<\/li>\n<li>sudo service hostapd start<\/li>\n<li>sudo service udhcpd start<\/li>\n<li>#-----------------------------6.get the hotspot to start on boot----------------------<\/li>\n<li>sudo update-rc.d hostapd enable<\/li>\n<li>sudo update-rc.d udhcpd enable<\/li>\n<li>#------------------------Create wifiConnect.py------------------------------------<\/li>\n<li>sudo apt-get install dnsmasq -y<\/li>\n<li>sudo service dnsmasq start<\/li>\n<li>sudo update-rc.d dnsmasq enable<\/li>\n<li>sudo apt-get install udhcpc -y<\/li><\/ol><\/div>\r\n\t<\/div><\/div><\/div><p>&nbsp;<\/p>\n<h3><strong><span style=\"color: #000000;\">4.Create AP.sh script<\/span><\/strong><\/h3>\r\n\t<div class='easycodebox  ' id='easycodebox-4'>\r\n\t<div class='headbar' onclick='EasyCodeClass(this).ShowCode();'  title=\"Click here to show\/hide the code.\"> AP.sh<\/div>\r\n\t<div class='flex-box'>\r\n\t<div class='scrollbox'  ondblclick=\"EasyCodeClass(this).editCode(1);\">\r\n\t<div class='ecside'>&nbsp;<\/div>\r\n\t<div class='main'><ol>\n<li>sudo\u00a0nano\u00a0AP.sh<\/li>\n<li><\/span><\/li><\/ol><\/div>\r\n\t<\/div><\/div><\/div>\r\n\t<div class='easycodebox  ' id='easycodebox-5'>\r\n\t<div class='headbar' onclick='EasyCodeClass(this).ShowCode();'  title=\"Click here to show\/hide the code.\"> ap.sh script<\/div>\r\n\t<div class='flex-box'>\r\n\t<div class='scrollbox'  ondblclick=\"EasyCodeClass(this).editCode(1);\">\r\n\t<div class='ecside'>&nbsp;<\/div>\r\n\t<div class='main'><ol>\n<li>#!\u00a0\/bin\/bash<\/li>\n<li>#sudo\u00a0cp\u00a0\u00a0\/etc\/init.d\/hostapd.bak\u00a0\/etc\/init.d\/hostapd<\/li>\n<li>#sudo\u00a0cp\u00a0\/etc\/init.d\/udhcpd.bak\u00a0\/etc\/init.d\/udhcpd<\/li>\n<li>sudo\u00a0\/etc\/init.d\/hostapd\u00a0stop<\/li>\n<li>sudo\u00a0\/etc\/init.d\/udhcpd\u00a0stop<\/li>\n<li>sudo\u00a0ifdown\u00a0wlan0<\/li>\n<li>sudo\u00a0ifconfig\u00a0wlan0\u00a0down<\/li>\n<li>sudo\u00a0rm\u00a0-rf\u00a0\/etc\/network\/interfaces<\/li>\n<li>sudo\u00a0cp\u00a0\/etc\/network\/interfaces.ap\u00a0\/etc\/network\/interfaces<\/li>\n<li>sudo\u00a0ifconfig\u00a0wlan0\u00a0up<\/li>\n<li>sudo\u00a0ifup\u00a0wlan0<\/li>\n<li>sudo\u00a0service\u00a0hostapd\u00a0start<\/li>\n<li>sudo\u00a0service\u00a0udhcpd\u00a0start<\/li>\n<li>sudo\u00a0service\u00a0hostapd\u00a0status<\/span><\/li><\/ol><\/div>\r\n\t<\/div><\/div><\/div><p>&nbsp;<\/p>\n<p><span style=\"color: #000000;\">Run mywifi.sh and AP.sh<\/span><\/p>\r\n\t<div class='easycodebox  ' id='easycodebox-6'>\r\n\t<div class='headbar' onclick='EasyCodeClass(this).ShowCode();'  title=\"Click here to show\/hide the code.\"> run wifi and AP<\/div>\r\n\t<div class='flex-box'>\r\n\t<div class='scrollbox'  ondblclick=\"EasyCodeClass(this).editCode(1);\">\r\n\t<div class='ecside'>&nbsp;<\/div>\r\n\t<div class='main'><ol>\n<li>sudo\u00a0.\/mywifi.sh<\/li>\n<li>sudo\u00a0.\/AP.sh<\/span><\/li><\/ol><\/div>\r\n\t<\/div><\/div><\/div><p>&nbsp;<\/p>\n<p><span style=\"color: #000000;\">If there is no errors , you should able to see SSID name &#8220;WifiPLC&#8221; on your wireless devices under WIFI setting menu. Login and when ask the password, type &#8220;My_Passphrase&#8221;\u00a0 that will save and connect it to your wireless devices. To test it, connect eth0 (ethernet port) on Raspberry Pi\u00a0 to DHCP router that connect to Internet. The router will assign a dynamic IP address . Now you are able to connect to Internet. Type &#8220;www.google.com&#8221; on your phone browser to verify it.<\/span><\/p>\n<p><span style=\"color: #000000;\">This is last step if you need a static IP\u00a0 and skip it if\u00a0 you just need dynamic IP address . Eth0\u00a0 still has a dynamic IP address and will not communicate with PLC static IP address network. Identify gateway address and check all existing PLC IP address and find a static IP address for Raspberry PI that will not cause conflicts with other numbers. In this example the gateway is 192.168.1.1 and the number has not been used by other PLCs is 192.168.1.50. To activate a static IP address, add the following to the very bottom of \/etc\/dhcpcd.conf file.<br \/>\n<\/span><\/p>\r\n\t<div class='easycodebox  ' id='easycodebox-7'>\r\n\t<div class='headbar' onclick='EasyCodeClass(this).ShowCode();'  title=\"Click here to show\/hide the code.\"> dhcpcd.conf<\/div>\r\n\t<div class='flex-box'>\r\n\t<div class='scrollbox'  ondblclick=\"EasyCodeClass(this).editCode(1);\">\r\n\t<div class='ecside'>&nbsp;<\/div>\r\n\t<div class='main'><ol>\n<li>#\u00a0static\u00a0IP\u00a0setup<\/li>\n<li>interface\u00a0eth0<\/li>\n<li>static\u00a0ip_address=192.168.1.50\/24<\/li>\n<li>static\u00a0routers=192.168.1.1<\/li>\n<li>static\u00a0domain_name_servers=192.168.1.1<\/span><\/li><\/ol><\/div>\r\n\t<\/div><\/div><\/div><p>&nbsp;<\/p>\n<h4><span style=\"color: #000000;\">Save it as\u00a0<strong> \/etc\/dhcpcd.conf.<\/strong><\/span><\/h4>\n<p><span style=\"color: #000000;\">Reboot your Raspberry Pi , connect Ethernet port to\u00a0 a PLC\u00a0 router. Now if you have PLC CPUs\u00a0 or Ethernet\u00a0 modules\u00a0 which have\u00a0 &#8220;192.168.1.xx &#8221; , type those number on your browser. Let says &#8220;192.168.1.33&#8221;. Most new Field devices or PLCs\u00a0 have HTTP protocol capability on port 80\/8080, so you will\u00a0 see something like this\u00a0 :<\/span><\/p>\n<p><span style=\"color: #000000;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-90\" src=\"http:\/\/taptronics.com\/taptronics\/wp-content\/uploads\/2016\/09\/diag-300x225.jpg\" alt=\"diag\" width=\"415\" height=\"311\" srcset=\"http:\/\/taptronics.com\/taptronics\/wp-content\/uploads\/2016\/09\/diag-300x225.jpg 300w, http:\/\/taptronics.com\/taptronics\/wp-content\/uploads\/2016\/09\/diag-768x576.jpg 768w, http:\/\/taptronics.com\/taptronics\/wp-content\/uploads\/2016\/09\/diag-1024x768.jpg 1024w, http:\/\/taptronics.com\/taptronics\/wp-content\/uploads\/2016\/09\/diag-800x600.jpg 800w, http:\/\/taptronics.com\/taptronics\/wp-content\/uploads\/2016\/09\/diag-400x300.jpg 400w, http:\/\/taptronics.com\/taptronics\/wp-content\/uploads\/2016\/09\/diag.jpg 1632w\" sizes=\"(max-width: 415px) 100vw, 415px\" \/><\/span><\/p>\n<p><span style=\"color: #000000;\">Using Raspbian shell terminal, we can find MAC number using &#8220;arp&#8217; command,\u00a0 install &#8220;nmap&#8221; utility to explore and troubleshoot\u00a0 the network such as scanning particular IP address blocks, checking open\/closed ports etc.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We can turn Raspberry pi 3 as\u00a0 AP(Access point) and can be utilized with wireless devices to scan PLCs or field devices network. Requirements: 1.Raspberry pi 3 2.Power Supply (for Raspberry) 3.Wireless device ( tablet, laptop, or cellphone) 4.Ethernet cable Keep in the mind that the following procedure is for Raspberry Pi 3 (Jessie raspbian)\u00a0 &hellip; <a href=\"http:\/\/taptronics.com\/taptronics\/another-swiss-army-knife-for-plc-networks-raspberry-pi-3\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Another &#8220;Swiss Army Knife&#8221;  for PLC Networks : Raspberry Pi 3<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/taptronics.com\/taptronics\/wp-json\/wp\/v2\/posts\/89"}],"collection":[{"href":"http:\/\/taptronics.com\/taptronics\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/taptronics.com\/taptronics\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/taptronics.com\/taptronics\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/taptronics.com\/taptronics\/wp-json\/wp\/v2\/comments?post=89"}],"version-history":[{"count":25,"href":"http:\/\/taptronics.com\/taptronics\/wp-json\/wp\/v2\/posts\/89\/revisions"}],"predecessor-version":[{"id":147,"href":"http:\/\/taptronics.com\/taptronics\/wp-json\/wp\/v2\/posts\/89\/revisions\/147"}],"wp:attachment":[{"href":"http:\/\/taptronics.com\/taptronics\/wp-json\/wp\/v2\/media?parent=89"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/taptronics.com\/taptronics\/wp-json\/wp\/v2\/categories?post=89"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/taptronics.com\/taptronics\/wp-json\/wp\/v2\/tags?post=89"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}