 #  Console - Tor Nodes 

 

- - Joomla! 4
    - Joomla! 5
    - Joomla! 6

- [ plugin ](/content-tags/plugin)
- [ console ](/content-tags/console)
 
  ![Console - Tor Nodes](https://cdn.richeyweb.com/images/articles/plg_console_tornodes/console-tor-nodes.webp)    - [JED: Console - Tor Nodes](https://extensions.joomla.org/extension/access-a-security/console-tor-nodes/)
 


Equip your Joomla site with Console - TOR Nodes, a CLI plugin that delivers the latest TOR exit node list for easy IP queries. It is free, it is simple, and it is built for one purpose: fetching TOR node data so you—and your extensions—can act on it. System - AdminExile blocks threats with it, System - Google Tag Manager tracks them, and other developers can tap into it however they see fit. The power is yours.

## How It Works

1. Fetch the List: Run the fetch command via Joomla’s CLI, and Console - TOR Nodes pulls the current TOR exit node list [directly from the TOR project](https://check.torproject.org/torbulkexitlist). Every IP is validated for accuracy.
2. Store It Locally: The verified list saves as a single array in a local file—fast and accessible.
3. Query with Ease: The Test::TOR($address) class checks any IP against the list. A true result marks a TOR exit node—use that intel as you please.
4. Stay Current, Stay Calm: Updates are limited to once every 24 hours—fresh data without overload.
 
## Automate with Cron

Ensure your TOR exit node list stays up to date without manual effort—set up a cron job to handle it. Add this line to your server’s crontab:

 ```
0 0 * * * php /path/to/joomla/cli/joomla.php tornodes:fetch
```

This triggers fetch daily at midnight (server time), refreshing the list automatically. Need a different schedule? Use 0 12 \* \* \* for noon. Adjust /path/to/joomla/ to your Joomla root path, and you are ready—consistent data, no hassle.

## Why You Need To ID Tor Nodes

TOR traffic is a wild card. It shields privacy advocates, but it also cloaks bots, attackers, and curious lurkers probing your Joomla site. Those exit nodes—where TOR users step into the clear—hit your pages daily, and without knowing who they are, you are in the dark. Console - TOR Nodes lights the way. It provides a daily-updated, verified list of every active TOR exit node, accessible with a single query. System - AdminExile uses it to lock out threats at the /administrator door. System - Google Tag Manager leverages it to log and analyze TOR visits. Other developers? They can build whatever they dream up—security, tracking, or something entirely new. This plugin does not dictate the action; it delivers the insight. What you do with it defines the outcome.

## Features

- TOR Exit Node List: Query IPs against known TOR nodes with one dependable check.
- CLI Simplicity: A single fetch command updates your list—no GUI overhead.
- Developer-Friendly Class: Test::TOR($address) returns a fast true/false—integrate it anywhere.
- GTM Support: Feeds a signal to [System - Google Tag Manager](/software/joomla/plugins/system-google-tag-manager) for TOR node tracking.
- AdminExile Support: Optional Tor Blacklist within [System - AdminExile](/software/joomla/plugins/system-adminexile).
- Validated IPs: Fetch ensures every address is clean and accurate.
- 24-Hour Limit: Updates refresh daily—current, not chaotic.
- Free and Native: Fully free, Joomla 5-compatible, no upsell distractions.
 
How will you harness TOR node data to shape your site’s future?

## Download

[  Console - Tor Nodes 5.0.2338](/extension-repository/console-tor-nodes/plg_console_tornodes-5.0.2)

[  Report a Bug](/bugs) [  Documentation](/software/documentation/console-tor-nodes)

## Frequently Asked Questions:

What is Console - TOR Nodes, and what does it do?Console - TOR Nodes is a free Joomla CLI plugin that fetches and stores a daily-updated list of TOR exit nodes. It allows you to query IP addresses to identify TOR traffic, enabling integration with extensions like System - AdminExile for security or System - Google Tag Manager for analytics.



How often is the TOR exit node list updated?The list updates once every 24 hours when you run the tornodes:fetch command, either manually or via a cron job. This ensures fresh data without overloading the TOR project’s servers.



How do I automate updates for the TOR node list?Set up a cron job on your server. Add this line to your crontab: 0 0 \* \* \* php /path/to/joomla/cli/joomla.php tornodes:fetch This runs the fetch command daily at midnight (server time). Adjust the schedule or path as needed.



Do I need to be a developer to use this plugin?While the plugin is developer-friendly, non-developers can use it to fetch and maintain the TOR node list via CLI or cron. However, querying IPs requires coding to integrate the Test::TOR($ip) class into your extensions or scripts.



What Joomla version is Console - TOR Nodes compatible with?The plugin is fully compatible with Joomla 5.



How do I check if an IP is a TOR exit node?Use the provided helper class in your code. Ensure the class file exists before querying, as shown in the documentation.



Can I use this plugin with other Joomla extensions?Yes, it integrates seamlessly with extensions like System - AdminExile (for blocking TOR IPs) and System - Google Tag Manager (for tracking TOR visits). Developers can also use it in custom extensions for security, analytics, or other purposes.



Is Console - TOR Nodes free?Yes, the plugin is completely free with no upsells or premium versions, as stated on the product page.



What happens if the fetch command fails?If the tornodes:fetch command fails (e.g., due to no internet connection), the plugin retains the existing TOR node list until the next successful fetch, ensuring continuity.



Why should I care about identifying TOR exit nodes?TOR traffic can include privacy advocates, bots, or potential threats. Identifying TOR exit nodes helps you secure your site (e.g., block suspicious access), track visits, or build custom features based on TOR activity.



Where is the TOR node list stored?The list is stored as an array in a local file at /plugins/console/tornodes/data/nodes.php, managed by the plugin for fast access.



Can I fetch the TOR node list more than once a day?No, the plugin enforces a 24-hour throttle to prevent excessive requests to the TOR project’s servers, ensuring efficiency and compliance.



Do I need to install additional software to use this plugin?No additional software is required beyond a Joomla 5 installation and access to your server’s command line for CLI commands or cron setup.



How do I troubleshoot issues with the plugin?Check the Joomla CLI path, ensure the plugin is enabled, and verify internet connectivity for fetching the list. If issues persist, consult the documentation or visit richeyweb.com for support.



Can I use Console - TOR Nodes for non-security purposes?Absolutely. While it supports security (e.g., with System - AdminExile), you can use it for analytics (e.g., with System - Google Tag Manager) or any custom application, like logging or filtering TOR traffic.





## 1 Review

### Retrieved from JED monthly

#### Complete - Unfiltered

###  Extend AdminExile with this useful plugin!

#### 2025-08-28 - John Vesey

Functionality  
Downloads a Tor exit node list using a CLI file. List is updated daily via a server CRON job. Added protection from bot login attempts, etcEase Of Use  
Installation is easy. Just install in the usual way and enable the plugin. There’s nothing else to configure from within Joomla.Support  
Support not needed but online documentation was helpful/useful when setting up the CRON job.Documentation  
Online documentation is comprehensive and accurate. Whole installation (Plugin and CRON setup) took about 5 mins. 

 





 



- [      email ](mailto:?subject=Console+-+Tor+Nodes&body=https%3A%2F%2Fwww.richeyweb.com%2Fsoftware%2Fjoomla%2Fplugins%2Fconsole-tor-nodes)
- [      facebook ](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.richeyweb.com%2Fsoftware%2Fjoomla%2Fplugins%2Fconsole-tor-nodes)
- [      x-twitter ](https://twitter.com/intent/tweet?text=Console+-+Tor+Nodes%3A+https%3A%2F%2Fwww.richeyweb.com%2Fsoftware%2Fjoomla%2Fplugins%2Fconsole-tor-nodes)
- [      linkedin ](http://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.richeyweb.com%2Fsoftware%2Fjoomla%2Fplugins%2Fconsole-tor-nodes&title=Console+-+Tor+Nodes&summary=Equip+your+Joomla+site+with+Console+-+TOR+Nodes%2C+a...)
- [      pinterest ](http://pinterest.com/pin/create/button/?url=https%3A%2F%2Fwww.richeyweb.com%2Fsoftware%2Fjoomla%2Fplugins%2Fconsole-tor-nodes&media=https%3A%2F%2Fcdn.joomla.org%2Fimages%2Fjoomla-org-og.jpg&description=Console+-+Tor+Nodes)
 


 

   [  Previous article: User - Static Name   User - Static Name ](/software/joomla/plugins/user-static-name) [  Next article: Fields - XMLForm  Fields - XMLForm  ](/software/joomla/plugins/fields-xmlform)  

##### We Value Your Privacy

 

We use cookies to enhance your experience and for traffic analysis. By continuing to visit this site you agree to our use of cookies.

[Privacy Policy](/privacy-policy)

 Details 

###### Google Tag Manager Items

- Ad Storage
- Ad User Data
- Ad Personalization
- Analytics Storage
- Functionality Storage
- Personalization Storage
- Security Storage
 
 

 

 

 

 

 Decline Accept
```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.richeyweb.com/#organization","name":"RicheyWeb","url":"https://www.richeyweb.com/","logo":{"@type":"ImageObject","url":"https://www.richeyweb.com/images/logo/richeyweb.svg","contentUrl":"https://www.richeyweb.com/images/logo/richeyweb.svg","width":{"@type":"QuantitativeValue","value":38,"unitCode":"PX"},"height":{"@type":"QuantitativeValue","value":38,"unitCode":"PX"},"@id":"https://www.richeyweb.com/#logo"},"image":{"@id":"https://www.richeyweb.com/#logo"},"sameAs":["https://x.com/ComRicheyweb","https://www.facebook.com/RicheyWebDev/","https://www.youtube.com/channel/UCxnVG8BwOvQRO7hVqNX7T2g","https://community.joomla.org/service-providers-directory/listings/115:richeyweb.html"],"description":"RicheyWeb is a custom software developer specializing in Joomla extensions.","ContactPoint":[{"@type":"ContactPoint","url":"https://www.richeyweb.com/contact-us","telephone":"903-873-8460","contactType":"Owner/Administrator","areaServed":["United States",{"@type":"Country","name":"United States","sameAs":["https://en.wikipedia.org/wiki/United_States","https://www.wikidata.org/wiki/Q30","https://g.co/kg/m/09c7w0"]},"European Union",{"@type":"AdministrativeArea","name":"European Union","sameAs":["https://en.wikipedia.org/wiki/European_Union","https://www.wikidata.org/wiki/Q458","https://g.co/kg/m/0_6t_z8"]},"United Kingdom",{"@type":"Country","name":"United Kingdom","sameAs":["https://en.wikipedia.org/wiki/United_Kingdom","https://www.wikidata.org/wiki/Q145","https://g.co/kg/m/07ssc"]},"Australia",{"@type":"Country","name":"Australia","sameAs":["https://en.wikipedia.org/wiki/Australia","https://www.wikidata.org/wiki/Q408","https://g.co/kg/m/0chghy"]},"Canada",{"@type":"Country","name":"Canada","sameAs":["https://en.wikipedia.org/wiki/Canada","https://www.wikidata.org/wiki/Q16","https://g.co/kg/m/0d060g"]},"Russia",{"@type":"Country","name":"Russia","sameAs":["https://en.wikipedia.org/wiki/Russia","https://www.wikidata.org/wiki/Q159","https://g.co/kg/m/06bnz"]},"China",{"@type":"Country","name":"China","sameAs":["https://en.wikipedia.org/wiki/China","https://www.wikidata.org/wiki/Q148","https://g.co/kg/m/0d05w3"]}],"availableLanguage":"en"},{"@type":"ContactPoint","url":"https://www.richeyweb.com/bugs","telephone":"903-873-8460","contactType":"Technical Support","areaServed":["United States",{"@type":"Country","name":"United States","sameAs":["https://en.wikipedia.org/wiki/United_States","https://www.wikidata.org/wiki/Q30","https://g.co/kg/m/09c7w0"]},"European Union",{"@type":"AdministrativeArea","name":"European Union","sameAs":["https://en.wikipedia.org/wiki/European_Union","https://www.wikidata.org/wiki/Q458","https://g.co/kg/m/0_6t_z8"]},"United Kingdom",{"@type":"Country","name":"United Kingdom","sameAs":["https://en.wikipedia.org/wiki/United_Kingdom","https://www.wikidata.org/wiki/Q145","https://g.co/kg/m/07ssc"]},"Australia",{"@type":"Country","name":"Australia","sameAs":["https://en.wikipedia.org/wiki/Australia","https://www.wikidata.org/wiki/Q408","https://g.co/kg/m/0chghy"]},"Canada",{"@type":"Country","name":"Canada","sameAs":["https://en.wikipedia.org/wiki/Canada","https://www.wikidata.org/wiki/Q16","https://g.co/kg/m/0d060g"]},"Russia",{"@type":"Country","name":"Russia","sameAs":["https://en.wikipedia.org/wiki/Russia","https://www.wikidata.org/wiki/Q159","https://g.co/kg/m/06bnz"]},"China",{"@type":"Country","name":"China","sameAs":["https://en.wikipedia.org/wiki/China","https://www.wikidata.org/wiki/Q148","https://g.co/kg/m/0d05w3"]}],"availableLanguage":"en"}],"knowsAbout":["Computer programming",{"@type":"Thing","name":"Computer programming","sameAs":["https://en.wikipedia.org/wiki/Computer_programming","https://www.wikidata.org/wiki/Q80006","https://g.co/kg/m/01mf_"]},"PHP",{"@type":"Thing","name":"PHP","sameAs":["https://en.wikipedia.org/wiki/PHP","https://www.wikidata.org/wiki/Q59","https://g.co/kg/m/060kv"]},"JavaScript",{"@type":"Thing","name":"JavaScript","sameAs":["https://en.wikipedia.org/wiki/JavaScript","https://www.wikidata.org/wiki/Q2005","https://g.co/kg/m/02p97"]},"arduino","Computer forensics",{"@type":"Thing","name":"Computer forensics","sameAs":["https://en.wikipedia.org/wiki/Computer_forensics","https://www.wikidata.org/wiki/Q878553","https://g.co/kg/m/02wxbd"]},"White hat",{"@type":"Thing","name":"White hat","sameAs":["https://en.wikipedia.org/wiki/White_hat_(computer_security)","https://www.wikidata.org/wiki/Q7995625","https://g.co/kg/m/03ns_5"]},"Search engine optimization",{"@type":"Thing","name":"Search engine optimization","sameAs":["https://en.wikipedia.org/wiki/Search_engine_optimization","https://www.wikidata.org/wiki/Q180711","https://g.co/kg/m/019qb_"]},"Search engine marketing",{"@type":"Thing","name":"Search engine marketing","sameAs":["https://en.wikipedia.org/wiki/Search_engine_marketing","https://www.wikidata.org/wiki/Q846132","https://g.co/kg/m/06mw8r"]},"Digital marketing",{"@type":"Thing","name":"Digital marketing","sameAs":["https://en.wikipedia.org/wiki/Digital_marketing","https://www.wikidata.org/wiki/Q1323528","https://g.co/kg/g/122hcnps"]},"Web hosting service",{"@type":"Thing","name":"Web hosting service","sameAs":["https://en.wikipedia.org/wiki/Web_hosting_service","https://www.wikidata.org/wiki/Q5892272","https://g.co/kg/m/014pz4"]},"Email hosting service",{"@type":"Thing","name":"Email hosting service","sameAs":["https://en.wikipedia.org/wiki/Email_hosting_service","https://www.wikidata.org/wiki/Q5368818","https://g.co/kg/m/09w60m"]},"Internet hosting service",{"@type":"Thing","name":"Internet hosting service","sameAs":["https://en.wikipedia.org/wiki/Internet_hosting_service","https://www.wikidata.org/wiki/Q1210425","https://g.co/kg/m/09w5yw"]},"Virtual hosting",{"@type":"Thing","name":"Virtual hosting","sameAs":["https://en.wikipedia.org/wiki/Virtual_hosting","https://www.wikidata.org/wiki/Q588365","https://g.co/kg/m/024mvh"]},"Web performance",{"@type":"Thing","name":"Web performance","sameAs":["https://en.wikipedia.org/wiki/Web_performance","https://www.wikidata.org/wiki/Q7978612","https://g.co/kg/m/0gfj3f1"]},"Web content management system",{"@type":"Thing","name":"Web content management system","sameAs":["https://en.wikipedia.org/wiki/Web_content_management_system","https://www.wikidata.org/wiki/Q45211","https://g.co/kg/m/0615s2"]},"Content management system",{"@type":"Thing","name":"Content management system","sameAs":["https://en.wikipedia.org/wiki/Content_management_system","https://www.wikidata.org/wiki/Q131093","https://g.co/kg/m/0k23c"]},"General Data Protection Regulation",{"@type":"Thing","name":"General Data Protection Regulation","sameAs":["https://en.wikipedia.org/wiki/General_Data_Protection_Regulation","https://www.wikidata.org/wiki/Q1172506","https://g.co/kg/m/0pk_7xs"]},"SERP",{"@type":"Thing","name":"SERP","sameAs":["https://en.wikipedia.org/wiki/SERP","https://www.wikidata.org/wiki/Q2205811","https://g.co/kg/g/11c5szp7kc"]},"Artificial intelligence",{"@type":"Thing","name":"Artificial intelligence","sameAs":["https://en.wikipedia.org/wiki/Artificial_intelligence","https://www.wikidata.org/wiki/Q11660","https://g.co/kg/m/0mkz"]},"Prompt engineering",{"@type":"Thing","name":"Prompt engineering","sameAs":["https://en.wikipedia.org/wiki/Prompt_engineering","https://www.wikidata.org/wiki/Q108941486","https://g.co/kg/g/11p6kpgt_n"]},"E-learning",{"@type":"Thing","name":"E-learning","sameAs":["https://en.wikipedia.org/wiki/E-learning_(theory)","https://www.wikidata.org/wiki/Q182250","https://g.co/kg/g/122czm1f"]},"Sharable Content Object Reference Model",{"@type":"Thing","name":"Sharable Content Object Reference Model","sameAs":["https://en.wikipedia.org/wiki/Sharable_Content_Object_Reference_Model","https://www.wikidata.org/wiki/Q827811","https://g.co/kg/m/06_40"]},"Experience API",{"@type":"Thing","name":"Experience API","sameAs":["https://en.wikipedia.org/wiki/Experience_API","https://www.wikidata.org/wiki/Q7807728","https://g.co/kg/g/1yw9ktxr8"]},"Joomla",{"@type":"Thing","name":"Joomla","sameAs":["https://en.wikipedia.org/wiki/Joomla","https://www.wikidata.org/wiki/Q13167","https://g.co/kg/m/07qb81"]},"Nginx",{"@type":"Thing","name":"Nginx","sameAs":["https://en.wikipedia.org/wiki/Nginx","https://www.wikidata.org/wiki/Q306144","https://g.co/kg/m/02qft91"]},"MySQL",{"@type":"Thing","name":"MySQL","sameAs":["https://en.wikipedia.org/wiki/MySQL","https://www.wikidata.org/wiki/Q850","https://g.co/kg/m/04y3k"]}],"areaServed":["United States",{"@type":"Country","name":"United States","sameAs":["https://en.wikipedia.org/wiki/United_States","https://www.wikidata.org/wiki/Q30","https://g.co/kg/m/09c7w0"]},"European Union",{"@type":"AdministrativeArea","name":"European Union","sameAs":["https://en.wikipedia.org/wiki/European_Union","https://www.wikidata.org/wiki/Q458","https://g.co/kg/m/0_6t_z8"]},"United Kingdom",{"@type":"Country","name":"United Kingdom","sameAs":["https://en.wikipedia.org/wiki/United_Kingdom","https://www.wikidata.org/wiki/Q145","https://g.co/kg/m/07ssc"]},"Australia",{"@type":"Country","name":"Australia","sameAs":["https://en.wikipedia.org/wiki/Australia","https://www.wikidata.org/wiki/Q408","https://g.co/kg/m/0chghy"]},"Canada",{"@type":"Country","name":"Canada","sameAs":["https://en.wikipedia.org/wiki/Canada","https://www.wikidata.org/wiki/Q16","https://g.co/kg/m/0d060g"]},"Russia",{"@type":"Country","name":"Russia","sameAs":["https://en.wikipedia.org/wiki/Russia","https://www.wikidata.org/wiki/Q159","https://g.co/kg/m/06bnz"]},"China",{"@type":"Country","name":"China","sameAs":["https://en.wikipedia.org/wiki/China","https://www.wikidata.org/wiki/Q148","https://g.co/kg/m/0d05w3"]}],"memberOf":["Mensa International",{"@type":"Organization","name":"Mensa International","sameAs":["https://en.wikipedia.org/wiki/Mensa_International","https://www.wikidata.org/wiki/Q184194","https://g.co/kg/m/0140pf"]},"National Rifle Association",{"@type":"Organization","name":"National Rifle Association","sameAs":["https://en.wikipedia.org/wiki/National_Rifle_Association","https://www.wikidata.org/wiki/Q863259","https://g.co/kg/m/0j6f9"]},"CompTIA",{"@type":"Organization","name":"CompTIA","sameAs":["https://en.wikipedia.org/wiki/CompTIA","https://www.wikidata.org/wiki/Q597534","https://g.co/kg/m/040shq"]},"ISFCE LLC",{"@type":"Organization","name":"ISFCE LLC","sameAs":["https://isfce.com","https://g.co/kg/g/11wxm5r0rg"]}],"hasCredential":[{"@type":"EducationalOccupationalCredential","name":"Joomla 3 Certified Administrator","credentialCategory":"Certification","description":"Administrator Exam is the first available Joomla! certification exam","recognizedBy":{"@type":"Organization","name":"Open Source Matters, Inc.","sameAs":["https://en.wikipedia.org/wiki/Open_Source_Matters,_Inc.","https://g.co/kg/g/11f00wvjhz"]},"url":"https://certification.joomla.org/certified-user-directory/michael-richey","about":["Content management system",{"@type":"Thing","name":"Content management system","sameAs":["https://en.wikipedia.org/wiki/Content_management_system","https://www.wikidata.org/wiki/Q131093","https://g.co/kg/m/0k23c"]},"Web content management system",{"@type":"Thing","name":"Web content management system","sameAs":["https://en.wikipedia.org/wiki/Web_content_management_system","https://www.wikidata.org/wiki/Q45211","https://g.co/kg/m/0615s2"]},"Joomla",{"@type":"Thing","name":"Joomla","sameAs":["https://en.wikipedia.org/wiki/Joomla","https://www.wikidata.org/wiki/Q13167","https://g.co/kg/m/07qb81"]}],"educationalLevel":"expert","image":{"@type":"ImageObject","url":"https://www.richeyweb.com/images/contact/badge.webp","contentUrl":"https://www.richeyweb.com/images/contact/badge.webp","width":{"@type":"QuantitativeValue","value":300,"unitCode":"PX"},"height":{"@type":"QuantitativeValue","value":86,"unitCode":"PX"},"caption":"Joomla 3 Certified Administrator"}},{"@type":"EducationalOccupationalCredential","name":"Certified Computer Examiner","credentialCategory":"Certification","description":"Internationally recognized computer forensics certifiecation","recognizedBy":{"@type":"Organization","name":"ISFCE LLC","sameAs":["https://en.wikipedia.org/wiki/ISFCE_LLC","https://g.co/kg/g/11wxm5r0rg"]},"url":"https://isfce.com/","about":["Digital forensics",{"@type":"Thing","name":"Digital forensics","sameAs":["https://en.wikipedia.org/wiki/Digital_forensics","https://www.wikidata.org/wiki/Q3246940","https://g.co/kg/m/0cnxzfx"]},"Computer forensics",{"@type":"Thing","name":"Computer forensics","sameAs":["https://en.wikipedia.org/wiki/Computer_forensics","https://www.wikidata.org/wiki/Q878553","https://g.co/kg/m/02wxbd"]},"Mobile device forensics",{"@type":"Thing","name":"Mobile device forensics","sameAs":["https://en.wikipedia.org/wiki/Mobile_device_forensics","https://www.wikidata.org/wiki/Q6887097","https://g.co/kg/m/06zp3tp"]},"Network forensics",{"@type":"Thing","name":"Network forensics","sameAs":["https://en.wikipedia.org/wiki/Network_forensics","https://www.wikidata.org/wiki/Q7001032","https://g.co/kg/m/05pb280"]},"Database forensics",{"@type":"Thing","name":"Database forensics","sameAs":["https://en.wikipedia.org/wiki/Database_forensics","https://www.wikidata.org/wiki/Q5227405","https://g.co/kg/m/0cgqsy"]}],"educationalLevel":"expert","image":{"@type":"ImageObject","url":"https://www.richeyweb.com/images/contact/isfce-cce.webp","contentUrl":"https://www.richeyweb.com/images/contact/isfce-cce.webp","width":{"@type":"QuantitativeValue","value":150,"unitCode":"PX"},"height":{"@type":"QuantitativeValue","value":150,"unitCode":"PX"},"caption":"Certified Computer Examiner"}}],"hasOfferCatalog":{"@type":"OfferCatalog","name":"Web Services","itemListElement":[{"@type":"Offer","itemOffered":{"@type":"Service","name":"Hosting"}},{"@type":"Offer","itemOffered":{"@type":"Service","name":"Development"}},{"@type":"Offer","itemOffered":{"@type":"Service","name":"Search Engine Optimization"}}]}},{"@type":"WebSite","@id":"https://www.richeyweb.com/#website","url":"https://www.richeyweb.com/","name":"RicheyWeb","publisher":{"@id":"https://www.richeyweb.com/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.richeyweb.com/search?q={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string","valueMaxLength":256,"valueMinLength":2,"valuePattern":"^[A-Za-z0-9\\s]+$"}},"creator":{"@id":"https://www.richeyweb.com/#organization"},"copyrightHolder":{"@id":"https://www.richeyweb.com/#organization"}},{"@type":"WebPage","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#webpage","url":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes","name":"Console - Tor Nodes","description":"Console - TOR Nodes: Free Joomla CLI plugin to fetch TOR exit node list. Query IPs easily for security or analytics with AdminExile & GTM.\r\n\r\n","isPartOf":{"@id":"https://www.richeyweb.com/#website"},"about":{"@id":"https://www.richeyweb.com/#organization"},"inLanguage":"en-GB"},{"@type":"SoftwareApplication","name":"Console - Tor Nodes","operatingSystem":"Joomla!","applicationCategory":"Plugin","offers":{"@type":"Offer","priceCurrency":"usd"},"about":["Joomla",{"@type":"Thing","name":"Joomla","sameAs":["https://en.wikipedia.org/wiki/Joomla","https://www.wikidata.org/wiki/Q13167","https://g.co/kg/m/07qb81"]},"Tor",{"@type":"Thing","name":"Tor","sameAs":["https://en.wikipedia.org/wiki/Tor_(network)","https://www.wikidata.org/wiki/Q224457","https://grokipedia.com/page/Tor","https://g.co/kg/m/04n38z"]},"Computer network",{"@type":"Thing","name":"Computer network","sameAs":["https://en.wikipedia.org/wiki/Computer_network","https://www.wikidata.org/wiki/Q1301371","https://g.co/kg/m/025szts"]},"Intrusion detection system",{"@type":"Thing","name":"Intrusion detection system","sameAs":["https://en.wikipedia.org/wiki/Intrusion_detection_system","https://www.wikidata.org/wiki/Q745881","https://g.co/kg/m/0svkb"]}],"mentions":["Google Analytics",{"@type":"Thing","name":"Google Analytics","sameAs":["https://en.wikipedia.org/wiki/Google_Analytics","https://www.wikidata.org/wiki/Q220577","https://g.co/kg/m/08w9_f"]},"Command-line interface",{"@type":"Thing","name":"Command-line interface","sameAs":["https://en.wikipedia.org/wiki/Command-line_interface","https://www.wikidata.org/wiki/Q189053","https://g.co/kg/m/01yzs"]},"IP address",{"@type":"Thing","name":"IP address","sameAs":["https://en.wikipedia.org/wiki/IP_address","https://www.wikidata.org/wiki/Q11135","https://g.co/kg/m/03vms"]},"cron",{"@type":"Thing","name":"cron","sameAs":["https://en.wikipedia.org/wiki/Cron","https://www.wikidata.org/wiki/Q300864","https://g.co/kg/m/025t72w"]},"Internet security",{"@type":"Thing","name":"Internet security","sameAs":["https://en.wikipedia.org/wiki/Internet_security","https://www.wikidata.org/wiki/Q1070427","https://g.co/kg/m/03jfnx"]}],"@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes/#softwareapplication","isPartOf":{"@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#webpage"},"hasPart":[{"@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#articleindex-toc-how-it-works_2_1"},{"@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#articleindex-toc-automate-with-cron_2_2"},{"@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#articleindex-toc-why-you-need-to-id-tor-nodes_2_3"},{"@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#articleindex-toc-features_2_4"},{"@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#articleindex-toc-download_2_5"},{"@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#faqpage"}]},{"@type":"FAQPage","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#faqpage","url":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes","isPartOf":{"@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#article"},"mainEntityOfPage":{"@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#webpage"},"mainEntity":[{"@type":"Question","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#question-0","name":"What is Console - TOR Nodes, and what does it do?","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#answer-0","text":"Console - TOR Nodes is a free Joomla CLI plugin that fetches and stores a daily-updated list of TOR exit nodes. It allows you to query IP addresses to identify TOR traffic, enabling integration with extensions like System - AdminExile for security or System - Google Tag Manager for analytics."}},{"@type":"Question","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#question-1","name":"How often is the TOR exit node list updated?","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#answer-1","text":"The list updates once every 24 hours when you run the tornodes:fetch command, either manually or via a cron job. This ensures fresh data without overloading the TOR project’s servers."}},{"@type":"Question","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#question-2","name":"How do I automate updates for the TOR node list?","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#answer-2","text":"Set up a cron job on your server. Add this line to your crontab:\r\n0 0 * * * php /path/to/joomla/cli/joomla.php tornodes:fetch\r\n\r\nThis runs the fetch command daily at midnight (server time). Adjust the schedule or path as needed.\r\n"}},{"@type":"Question","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#question-3","name":"Do I need to be a developer to use this plugin?","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#answer-3","text":"While the plugin is developer-friendly, non-developers can use it to fetch and maintain the TOR node list via CLI or cron. However, querying IPs requires coding to integrate the Test::TOR($ip) class into your extensions or scripts."}},{"@type":"Question","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#question-4","name":"What Joomla version is Console - TOR Nodes compatible with?","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#answer-4","text":"The plugin is fully compatible with Joomla 5."}},{"@type":"Question","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#question-5","name":"How do I check if an IP is a TOR exit node?","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#answer-5","text":"Use the provided helper class in your code. Ensure the class file exists before querying, as shown in the documentation."}},{"@type":"Question","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#question-6","name":"Can I use this plugin with other Joomla extensions?","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#answer-6","text":"Yes, it integrates seamlessly with extensions like System - AdminExile (for blocking TOR IPs) and System - Google Tag Manager (for tracking TOR visits). Developers can also use it in custom extensions for security, analytics, or other purposes."}},{"@type":"Question","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#question-7","name":"Is Console - TOR Nodes free?","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#answer-7","text":"Yes, the plugin is completely free with no upsells or premium versions, as stated on the product page.\r\n"}},{"@type":"Question","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#question-8","name":"What happens if the fetch command fails?","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#answer-8","text":"If the tornodes:fetch command fails (e.g., due to no internet connection), the plugin retains the existing TOR node list until the next successful fetch, ensuring continuity.\r\n"}},{"@type":"Question","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#question-9","name":"Why should I care about identifying TOR exit nodes?","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#answer-9","text":"TOR traffic can include privacy advocates, bots, or potential threats. Identifying TOR exit nodes helps you secure your site (e.g., block suspicious access), track visits, or build custom features based on TOR activity.\r\n"}},{"@type":"Question","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#question-10","name":"Where is the TOR node list stored?","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#answer-10","text":"The list is stored as an array in a local file at /plugins/console/tornodes/data/nodes.php, managed by the plugin for fast access."}},{"@type":"Question","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#question-11","name":"Can I fetch the TOR node list more than once a day?","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#answer-11","text":"No, the plugin enforces a 24-hour throttle to prevent excessive requests to the TOR project’s servers, ensuring efficiency and compliance."}},{"@type":"Question","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#question-12","name":"Do I need to install additional software to use this plugin?","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#answer-12","text":"No additional software is required beyond a Joomla 5 installation and access to your server’s command line for CLI commands or cron setup."}},{"@type":"Question","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#question-13","name":"How do I troubleshoot issues with the plugin?","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#answer-13","text":"Check the Joomla CLI path, ensure the plugin is enabled, and verify internet connectivity for fetching the list. If issues persist, consult the documentation or visit richeyweb.com for support."}},{"@type":"Question","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#question-14","name":"Can I use Console - TOR Nodes for non-security purposes?","acceptedAnswer":{"@type":"Answer","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#answer-14","text":"Absolutely. While it supports security (e.g., with System - AdminExile), you can use it for analytics (e.g., with System - Google Tag Manager) or any custom application, like logging or filtering TOR traffic."}}]},{"@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#articleindex","@type":"ItemList","name":"Console - Tor Nodes","numberOfItems":5,"itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"WPHeader","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#articleindex-toc-how-it-works_2_1","name":"How It Works","url":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#toc-how-it-works_2_1"}},{"@type":"ListItem","position":2,"item":{"@type":"WPHeader","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#articleindex-toc-automate-with-cron_2_2","name":"Automate with Cron","url":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#toc-automate-with-cron_2_2"}},{"@type":"ListItem","position":3,"item":{"@type":"WPHeader","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#articleindex-toc-why-you-need-to-id-tor-nodes_2_3","name":"Why You Need To ID Tor Nodes","url":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#toc-why-you-need-to-id-tor-nodes_2_3"}},{"@type":"ListItem","position":4,"item":{"@type":"WPHeader","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#articleindex-toc-features_2_4","name":"Features","url":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#toc-features_2_4"}},{"@type":"ListItem","position":5,"item":{"@type":"WPHeader","@id":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#articleindex-toc-download_2_5","name":"Download","url":"https://www.richeyweb.com/software/joomla/plugins/console-tor-nodes#toc-download_2_5"}}]}]}
```
