Repository: lockfale/OSINT-Framework
Branch: master
Commit: 43a3abd6ef20
Files: 10
Total size: 175.9 KB
Directory structure:
gitextract_uatvirp8/
├── .bowerrc
├── .gitignore
├── LICENSE
├── README.md
├── bower.json
├── package.json
└── public/
├── arf.json
├── css/
│ └── arf.css
├── index.html
└── js/
└── arf.js
================================================
FILE CONTENTS
================================================
================================================
FILE: .bowerrc
================================================
{
"directory" : "public/js/vendor"
}
================================================
FILE: .gitignore
================================================
# vendor packages #
######################
public/js/vendor
node_modules
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2017 Justin Nordine (https://github.com/s0lray)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
# OSINT Framework
http://osintframework.com
## Notes
OSINT framework focused on gathering information from free tools or resources. The intention is to help people find free OSINT resources. Some of the sites included might require registration or offer more data for $$$, but you should be able to get at least a portion of the available information for no cost.
I originally created this framework with an information security point of view. Since then, the response from other fields and disciplines has been incredible. I would love to be able to include any other OSINT resources, especially from fields outside of infosec. Please let me know about anything that might be missing!
Please visit the framework at the link below and good hunting!
https://osintframework.com
### Legend
(T) - Indicates a link to a tool that must be installed and run locally
(D) - Google Dork, for more information: Google Hacking
(R) - Requires registration
(M) - Indicates a URL that contains the search term and the URL itself must be edited manually
### For Update Notifications
Follow me on Twitter: @jnordine - https://twitter.com/jnordine
Watch or star the project on Github: https://github.com/lockfale/osint-framework
### Suggestions, Comments, Feedback
Feedback or new tool suggestions are extremely welcome! Please feel free to submit a pull request or open an issue on github or reach out on Twitter.
### Contribute with a GitHub Pull Request
For new resources, please ensure that the site is available for public and free use.
Update the arf.json file in the format shown below. If this isn't the first entry for a folder, add a comma to the last closing brace of the previous entry.
```
{
"name": "Example Name",
"type": "url",
"url": "http://example.com"
}
```
Submit pull request!
Thank you!
## OSINT Framework Website
https://osintframework.com
Happy Hunting!
================================================
FILE: bower.json
================================================
{
"name": "ARF",
"main": "index.html",
"homepage": "https://github.com/lockfale/ARF",
"authors": [
"Justin Nordine (s0lray)"
],
"description": "Advanced Reconnaissance Framework",
"license": "",
"dependencies": {
"d3": "3.5.16"
}
}
================================================
FILE: package.json
================================================
{
"name": "arf",
"version": "1.0.0",
"description": "Advanced Reconnaissance Framework",
"main": "public/index.html",
"scripts": {
"postinstall": "copyfiles -f ./node_modules/d3/d3.min.js ./public/js/vendor/d3",
"start": "cd ./public; python -m SimpleHTTPServer 8000"
},
"repository": {
"type": "git",
"url": "git+https://github.com/lockfale/ARF.git"
},
"author": "Justin Nordine (s0lray)",
"license": "",
"bugs": {
"url": "https://github.com/lockfale/ARF/issues"
},
"homepage": "https://github.com/lockfale/ARF#readme",
"devDependencies": {
"copyfiles": "^1.0.0",
"d3": "^3.5.16"
}
}
================================================
FILE: public/arf.json
================================================
{
"name": "OSINT Framework",
"type": "folder",
"children": [
{
"name": "Username",
"type": "folder",
"children": [
{
"name": "Username Search Engines",
"type": "folder",
"children": [
{
"name": "Sylva Identity Discovery (T)",
"type": "url",
"url": "https://sylva.pfeister.dev/"
},
{
"name": "Sherlock (T)",
"type": "url",
"url": "https://github.com/sherlock-project/sherlock"
},
{
"name": "WhatsMyName",
"type": "url",
"url": "https://whatsmyname.app/"
},
{
"name": "Namechk",
"type": "url",
"url": "https://namechk.com/"
},
{
"name": "UserSearch.org",
"type": "url",
"url": "https://usersearch.org/"
},
{
"name": "WhatsMyName (T)",
"type": "url",
"url": "https://github.com/WebBreacher/WhatsMyName"
},
{
"name": "WhatsMyName",
"type": "url",
"url": "https://whatsmyname.app/"
},
{
"name": "Thats Them",
"type": "url",
"url": "https://thatsthem.com/"
},
{
"name": "NameCheckup",
"type": "url",
"url": "https://namecheckup.com/"
},
{
"name": "Instant Username Search",
"type": "url",
"url": "https://instantusername.com/"
},
{
"name": "Sherlock",
"type": "url",
"url": "https://github.com/sherlock-project/sherlock"
},
{
"name": "IDCrawl Username Search",
"type": "url",
"url": "https://www.idcrawl.com/username"
},
{
"name": "Names Directory",
"type": "url",
"url": "https://namesdir.com/"
}]
},
{
"name": "Specific Sites",
"type": "folder",
"children": [
{
"name": "Amazon Usernames (M)",
"type": "url",
"url": "https://www.google.com/search?q=site:amazon.com+%3Cusername%3E"
},
{
"name": "Github User (M)",
"type": "url",
"url": "https://api.github.com/users/%3Cusername%3E/events/public"
},
{
"name": "Tinder Usernames (M)",
"type": "url",
"url": "https://www.gotinder.com/@%3Cusername%3E"
},
{
"name": "Keybase",
"type": "url",
"url": "https://keybase.io/"
},
{
"name": "MIT PGP Key Server",
"type": "url",
"url": "http://pgp.mit.edu/"
}
{
"name": "ProtonMail users (M)",
"type": "url",
"url": "https://api.protonmail.ch/pks/lookup?op=index&search=@protonmail.com"
},
{
"name": "ProtonMail Domains (M)",
"type": "url",
"url": "https://api.protonmail.ch/pks/lookup?op=index&search="
}]
}]
},
{
"name": "Email Address",
"type": "folder",
"children": [
{
"name": "Email Search",
"type": "folder",
"children": [
{
"name": "Sylva Identity Discovery (T)",
"type": "url",
"url": "https://sylva.pfeister.dev/"
},
{
"name": "ThatsThem",
"type": "url",
"url": "https://thatsthem.com/reverse-email-lookup"
},
{
"name": "Hunter",
"type": "url",
"url": "https://hunter.io/"
},
{
"name": "Email to Address (R)",
"type": "url",
"url": "http://www.melissadata.com/lookups/emails.asp"
},
{
"name": "VoilaNorbert",
"type": "url",
"url": "https://www.voilanorbert.com/"
},
{
"name": "GHunt (T)",
"type": "url",
"url": "https://github.com/mxrch/GHunt"
},
{
"name": "OSINT Industries",
"type": "url",
"url": "https://osint.industries/"
},
{
"name": "theHarvester (T)",
"type": "url",
"url": "https://github.com/laramies/theHarvester"
},
{
"name": "Infoga (T)",
"type": "url",
"url": "https://github.com/m4ll0k/infoga"
},
{
"name": "Skymem",
"type": "url",
"url": "http://www.skymem.info/"
},
{
"name": "Epieos Email Tool",
"type": "url",
"url": "https://tools.epieos.com/email.php"
},
{
"name": "Holehe (T)",
"type": "url",
"url": "https://github.com/megadose/holehe"
}]
},
{
"name": "Common Email Formats",
"type": "folder",
"children": [
{
"name": "Email Format",
"type": "url",
"url": "https://www.email-format.com/"
},
{
"name": "Email Permutator",
"type": "url",
"url": "http://metricsparrow.com/toolkit/email-permutator/"
},
{
"name": "OneLook Reverse Dictionary and Thesaurus",
"type": "url",
"url": "http://www.onelook.com/reverse-dictionary.shtml"
}]
},
{
"name": "Email Verification",
"type": "folder",
"children": [
{
"name": "Reacher Github (T)",
"type": "url",
"url": "https://github.com/reacherhq/check-if-email-exists"
},
{
"name": "Reacher Demo",
"type": "url",
"url": "https://reacher.email"
},
{
"name": "MailScrap",
"type": "url",
"url": "https://mailscrap.com/"
},
{
"name": "Read Notify",
"type": "url",
"url": "http://www.readnotify.com/"
},
{
"name": "Email Reputation",
"type": "url",
"url": "https://emailrep.io/"
},
{
"name": "MailboxValidator",
"type": "url",
"url": "https://www.mailboxvalidator.com/demo"
}]
},
{
"name": "Breach Data",
"type": "folder",
"children": [
{
"name": "Have I been pwned?",
"type": "url",
"url": "https://haveibeenpwned.com/"
},
{
"name": "Hudson Rock",
"type": "url",
"url": "https://www.hudsonrock.com/threat-intelligence-cybercrime-tools"
},
{
"name": "DeHashed (R)",
"type": "url",
"url": "https://dehashed.com/"
},
{
"name": "Vigilante.pw",
"type": "url",
"url": "https://www.vigilante.pw/"
},
{
"name": "Ashley Madison Emails",
"type": "url",
"url": "https://ashley.cynic.al/"
}]
},
{
"name": "Mail Blacklists",
"type": "folder",
"children": [
{
"name": "MxToolbox",
"type": "url",
"url": "http://mxtoolbox.com/"
}]
}]
},
{
"name": "Domain Name",
"type": "folder",
"children": [
{
"name": "Whois Records",
"type": "folder",
"children": [
{
"name": "Domain Dossier",
"type": "url",
"url": "http://centralops.net/co/DomainDossier.aspx"
},
{
"name": "domainIQ",
"type": "url",
"url": "https://www.domainiq.com/"
},
{
"name": "DomainTools Whois",
"type": "url",
"url": "http://whois.domaintools.com/"
},
{
"name": "SWITCH Internet Domains Whois (.ch)",
"type": "url",
"url": "https://www.nic.ch/whois/"
},
{
"name": "Domain Big Data",
"type": "url",
"url": "http://domainbigdata.com/"
},
{
"name": "Whoisology",
"type": "url",
"url": "https://whoisology.com/#advanced"
},
{
"name": "Whois ARIN",
"type": "url",
"url": "https://whois.arin.net/ui/advanced.jsp"
},
{
"name": "DNSstuff",
"type": "url",
"url": "https://tools.dnsstuff.com/"
},
{
"name": "Robtex (R)",
"type": "url",
"url": "https://www.robtex.com/"
},
{
"name": "Domaincrawler.com",
"type": "url",
"url": "http://www.domaincrawler.com/"
},
{
"name": "MarkMonitor Whois Search",
"type": "url",
"url": "https://domains.markmonitor.com/whois/"
},
{
"name": "easyWhois",
"type": "url",
"url": "https://www.easywhois.com/"
},
{
"name": "Website Informer",
"type": "url",
"url": "http://website.informer.com/"
},
{
"name": "Who.is",
"type": "url",
"url": "https://who.is/"
},
{
"name": "Whois AMPed",
"type": "url",
"url": "https://whoisamped.com/"
},
{
"name": "ViewDNS.info",
"type": "url",
"url": "http://viewdns.info/"
},
{
"name": "Daily DNS Changes",
"type": "url",
"url": "http://www.dailychanges.com/"
},
{
"name": "IP2WHOIS",
"type": "url",
"url": "https://www.ip2whois.com"
},
{
"name": "Netlas.io",
"type": "url",
"url": "https://app.netlas.io/whois_domains/"
}]
},
{
"name": "Subdomains",
"type": "folder",
"children": [
{
"name": "SynapsInt",
"type": "url",
"url": "https://synapsint.com"
},
{
"name": "Aquatone (T)",
"type": "url",
"url": "https://github.com/michenriksen/aquatone"
},
{
"name": "FindSubDomains",
"type": "url",
"url": "https://findsubdomains.com/"
},
{
"name": "Google Subdomains (D)",
"type": "url",
"url": "https://www.google.com/?gws_rd=ssl#q=site:%3Cdomain.com%3E"
},
{
"name": "Recon-ng (T)",
"type": "url",
"url": "https://github.com/lanmaster53/recon-ng"
},
{
"name": "XRay",
"type": "url",
"url": "https://github.com/evilsocket/xray"
},
{
"name": "DNS Recon (T)",
"type": "url",
"url": "https://github.com/darkoperator/dnsrecon"
},
{
"name": "Gobuster (T)",
"type": "url",
"url": "https://github.com/OJ/gobuster"
},
{
"name": "Fierce Domain Scanner (T)",
"type": "url",
"url": "https://github.com/davidpepper/fierce-domain-scanner"
},
{
"name": "Bluto (T)",
"type": "url",
"url": "https://github.com/darryllane/Bluto"
},
{
"name": "OWASP Maryam (T)",
"type": "url",
"url": "https://github.com/saeeddhqan/Maryam"
},
{
"name": "theHarvester (T)",
"type": "url",
"url": "https://github.com/laramies/theHarvester"
},
{
"name": "Pentest-tools.com Subdomains",
"type": "url",
"url": "https://pentest-tools.com/information-gathering/find-subdomains-of-domain"
},
{
"name": "SecLists DNS Subdomains (T)",
"type": "url",
"url": "https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS"
},
{
"name": "dnspop (T)",
"type": "url",
"url": "https://github.com/bitquark/dnspop"
},
{
"name": "gdns (T)",
"type": "url",
"url": "https://github.com/hrbrmstr/gdns"
},
{
"name": "Sublist3r",
"type": "url",
"url": "https://github.com/aboul3la/Sublist3r"
},
{
"name": "AltDNS (T)",
"type": "url",
"url": "https://github.com/infosec-au/altdns"
},
{
"name": "Netlas.io",
"type": "url",
"url": "https://app.netlas.io/domains/"
}]
},
{
"name": "Discovery",
"type": "folder",
"children": [
{
"name": "Shodan",
"type": "url",
"url": "https://www.shodan.io/"
},
{
"name": "Netlas.io",
"type": "url",
"url": "https://app.netlas.io/"
},
{
"name": "ODIN (R)",
"type": "url",
"url": "https://www.getodin.com/"
},
{
"name": "Kraken (T)",
"type": "url",
"url": "https://github.com/Sw4mpf0x/Kraken"
},
{
"name": "SecurityTrails (R)",
"type": "url",
"url": "https://securitytrails.com/"
},
{
"name": "Online Nikto scanner",
"type": "url",
"url": "https://nikto.online/"
},
{
"name": "urlscan.io",
"type": "url",
"url": "https://urlscan.io/search/#*"
},
{
"name": "Daily DNS Changes",
"type": "url",
"url": "http://www.dailychanges.com/"
},
{
"name": "Redirect Detective",
"type": "url",
"url": "http://redirectdetective.com/"
},
{
"name": "Sitediff (T)",
"type": "url",
"url": "https://github.com/digininja/sitediff"
},
{
"name": "BuiltWith",
"type": "url",
"url": "https://builtwith.com/"
},
{
"name": "Wappalyzer",
"type": "url",
"url": "https://www.wappalyzer.com/"
},
{
"name": "AnalyzeID",
"type": "url",
"url": "http://analyzeid.com/"
},
{
"name": "Criminal IP Search",
"type": "url",
"url": "https://www.criminalip.io/"
},
{
"name": "urlDNA",
"type": "url",
"url": "https://urldna.io"
}]
},
{
"name": "Certificate Search",
"type": "folder",
"children": [
{
"name": "Shodan",
"type": "url",
"url": "https://www.shodan.io/"
},
{
"name": "Google's Certificate Transparency",
"type": "url",
"url": "https://www.certificate-transparency.org/known-logs"
},
{
"name": "Spyse",
"type": "url",
"url": "https://spyse.com/search/certificate"
},
{
"name": "Censys",
"type": "url",
"url": "https://censys.io/"
},
{
"name": "crt.sh - Certificate Search",
"type": "url",
"url": "https://crt.sh/?"
},
{
"name": "certgraph (T)",
"type": "url",
"url": "https://github.com/lanrat/certgraph"
},
{
"name": "ODIN (R)",
"type": "url",
"url": "https://www.getodin.com/"
},
{
"name": "Netlas.io",
"type": "url",
"url": "https://app.netlas.io/certs/"
}]
},
{
"name": "PassiveDNS",
"type": "folder",
"children": [
{
"name": "Security Trails (R)",
"type": "url",
"url": "https://securitytrails.com/"
},
{
"name": "Mnemonic",
"type": "url",
"url": "http://passivedns.mnemonic.no/"
},
{
"name": "DNS History",
"type": "url",
"url": "http://dnshistory.org/"
},
{
"name": "PTRarchive.com",
"type": "url",
"url": "http://ptrarchive.com/"
},
{
"name": "DNS Dumpster",
"type": "url",
"url": "https://dnsdumpster.com/"
},
{
"name": "Deteque (R)",
"type": "url",
"url": "https://www.deteque.com/"
}]
},
{
"name": "Reputation",
"type": "folder",
"children": [
{
"name": "AbuseIPDB (Webpage and API)",
"type": "url",
"url": "https://www.abuseipdb.com/"
},
{
"name": "UrlQuery.net",
"type": "url",
"url": "http://urlquery.net/"
},
{
"name": "PassiveTotal",
"type": "url",
"url": "https://www.passivetotal.org/"
},
{
"name": "URL Void",
"type": "url",
"url": "http://www.urlvoid.com/"
},
{
"name": "Threat Crowd",
"type": "url",
"url": "https://www.threatcrowd.org/"
},
{
"name": "FortiGuard Reputation Service",
"type": "url",
"url": "http://fortiguard.com/iprep"
},
{
"name": "McAfee TrustedSource",
"type": "url",
"url": "http://www.trustedsource.org/"
},
{
"name": "Trend Micro Site Safety Center",
"type": "url",
"url": "https://global.sitesafety.trendmicro.com/"
},
{
"name": "WatchGuard ReputationAuthority",
"type": "url",
"url": "http://www.reputationauthority.org/"
},
{
"name": "Sucuri SiteCheck",
"type": "url",
"url": "https://sitecheck.sucuri.net/"
},
{
"name": "ThreatMiner.org",
"type": "url",
"url": "https://www.threatminer.org/"
},
{
"name": "BlueCoat WebPulse",
"type": "url",
"url": "https://sitereview.bluecoat.com/sitereview.jsp"
},
{
"name": "Zscaler Zulu URL Risk Analyzer",
"type": "url",
"url": "http://zulu.zscaler.com/"
},
{
"name": "Joe Sandbox Url Analyzer",
"type": "url",
"url": "https://www.url-analyzer.net/"
},
{
"name": "Deepviz Domain Search",
"type": "url",
"url": "https://search.deepviz.com/"
},
{
"name": "Cisco SenderBase",
"type": "url",
"url": "http://www.senderbase.org/"
},
{
"name": "AVG Threat Labs",
"type": "url",
"url": "http://www.avgthreatlabs.com/ww-en/website-safety-reports/"
},
{
"name": "Webroot BrightCloud URL/IP Lookup",
"type": "url",
"url": "http://www.brightcloud.com/tools/url-ip-lookup.php"
},
{
"name": "vURL Online",
"type": "url",
"url": "https://vurldissect.co.uk/"
},
{
"name": "AlienVault Open Threat Exchange",
"type": "url",
"url": "https://otx.alienvault.com/browse/pulses/"
},
{
"name": "Malware Domain List",
"type": "url",
"url": "http://www.malwaredomainlist.com/mdl.php"
},
{
"name": "Web Inspector Online Scan",
"type": "url",
"url": "http://app.webinspector.com/"
},
{
"name": "Google Safe Browsing API",
"type": "url",
"url": "https://developers.google.com/safe-browsing/?csw=1"
},
{
"name": "hpHosts Online",
"type": "url",
"url": "http://hosts-file.net/"
}]
},
{
"name": "Domain Blacklists",
"type": "folder",
"children": [
{
"name": "Ransomware Tracker Abuse.ch",
"type": "url",
"url": "http://ransomwaretracker.abuse.ch/downloads/RW_DOMBL.txt"
},
{
"name": "Threatexpert.com Malicious URLs",
"type": "url",
"url": "http://www.networksec.org/grabbho/block.txt"
},
{
"name": "Zeus C2 Tracker",
"type": "url",
"url": "https://zeustracker.abuse.ch/blocklist.php?download=domainblocklist"
},
{
"name": "Malware Domains Blacklist",
"type": "url",
"url": "http://mirror1.malwaredomains.com/files/domains.txt"
},
{
"name": "Blackweb",
"type": "url",
"url": "https://github.com/maravento/blackweb"
},
{
"name": "Critical Stack Intel (R)",
"type": "url",
"url": "https://intel.criticalstack.com/"
},
{
"name": "DNS Sinkhole",
"type": "url",
"url": "http://malc0de.com/bl/"
},
{
"name": "DNS-BH Malware Domain Blocklist",
"type": "url",
"url": "http://www.malwaredomains.com/wordpress/?page_id=66"
},
{
"name": "Malware Domain List",
"type": "url",
"url": "http://www.malwaredomainlist.com/hostslist/hosts.txt"
},
{
"name": "Malware Patrol (R)",
"type": "url",
"url": "http://www.malware.com.br/open-source.shtml"
},
{
"name": "MalwareURL (R)",
"type": "url",
"url": "http://www.malwareurl.com/index.php"
},
{
"name": "scumware.org",
"type": "url",
"url": "https://www.scumware.org/"
},
{
"name": "ZeuS Tracker",
"type": "url",
"url": "https://zeustracker.abuse.ch/blocklist.php"
},
{
"name": "Shadowserver Foundation",
"type": "url",
"url": "http://www.shadowserver.org/wiki/pmwiki.php?n=Services/Reports"
},
{
"name": "Email Domain Validation",
"type": "url",
"url": "https://www.mailboxvalidator.com/domain"
}]
},
{
"name": "Typosquatting",
"type": "folder",
"children": [
{
"name": "DNS Twist (T)",
"type": "url",
"url": "https://github.com/elceef/dnstwist"
},
{
"name": "URLCrazy (T)",
"type": "url",
"url": "http://www.morningstarsecurity.com/research/urlcrazy"
},
{
"name": "dnstwister",
"type": "url",
"url": "https://dnstwister.report/"
},
{
"name": "Catphish (T)",
"type": "url",
"url": "https://github.com/ring0lab/catphish"
}]
},
{
"name": "Analytics",
"type": "folder",
"children": [
{
"name": "BuiltWith",
"type": "url",
"url": "http://builtwith.com/"
},
{
"name": "SiteSleuth",
"type": "url",
"url": "https://www.sitesleuth.io/"
},
{
"name": "Wappalyzer (T)",
"type": "url",
"url": "https://wappalyzer.com/"
},
{
"name": "SEMrush",
"type": "url",
"url": "https://www.semrush.com/"
},
{
"name": "TopGainers",
"type": "url",
"url": "https://topgainers.net/"
},
{
"name": "Moonsearch",
"type": "url",
"url": "http://moonsearch.com/"
},
{
"name": "StackShare",
"type": "url",
"url": "https://stackshare.io/"
},
{
"name": "Ewhois",
"type": "url",
"url": "https://ewhois.com/"
},
{
"name": "Netcraft",
"type": "url",
"url": "http://toolbar.netcraft.com/site_report?url=undefined#last_reboot"
},
{
"name": "StatsCrop",
"type": "url",
"url": "http://www.statscrop.com/"
},
{
"name": "Open Site Explorer",
"type": "url",
"url": "https://moz.com/researchtools/ose/"
},
{
"name": "SpyOnWeb",
"type": "url",
"url": "http://www.spyonweb.com/"
},
{
"name": "SecurityHeaders.io",
"type": "url",
"url": "https://securityheaders.io/"
},
{
"name": "Keyword Density",
"type": "url",
"url": "http://tools.seobook.com/general/keyword-density/"
},
{
"name": "Alexa Site Statistics",
"type": "url",
"url": "http://www.alexa.com/siteinfo"
},
{
"name": "Cisco Umbrella Popularity List",
"type": "url",
"url": "http://s3-us-west-1.amazonaws.com/umbrella-static/index.html"
},
{
"name": "Alexa Top 500 Global Sites",
"type": "url",
"url": "http://www.alexa.com/topsites"
},
{
"name": "W3bin.com",
"type": "url",
"url": "https://w3bin.com/"
},
{
"name": "Sitedossier",
"type": "url",
"url": "http://www.sitedossier.com/"
},
{
"name": "Visual Site Mapper",
"type": "url",
"url": "http://www.visualsitemapper.com/"
},
{
"name": "ClearWebStats.com",
"type": "url",
"url": "https://www.clearwebstats.com/"
},
{
"name": "PubDB",
"type": "url",
"url": "http://pub-db.com/"
},
{
"name": "WWW Domain Tools",
"type": "url",
"url": "https://w3dt.net/"
},
{
"name": "SimilarWeb",
"type": "url",
"url": "https://www.similarweb.com/"
},
{
"name": "Website Outlook",
"type": "url",
"url": "http://websiteoutlook.com/"
},
{
"name": "Siteliner",
"type": "url",
"url": "http://siteliner.com/"
},
{
"name": "WebPagetest",
"type": "url",
"url": "https://www.webpagetest.org/"
},
{
"name": "WhatWeb",
"type": "url",
"url": "https://github.com/urbanadventurer/WhatWeb"
}]
},
{
"name": "URL Expanders",
"type": "folder",
"children": [
{
"name": "Link Expander",
"type": "url",
"url": "http://www.linkexpander.com/"
},
{
"name": "GetLinkInfo",
"type": "url",
"url": "http://www.getlinkinfo.com/"
},
{
"name": "CheckShortURL",
"type": "url",
"url": "http://checkshorturl.com/"
},
{
"name": "Lengthen Me",
"type": "url",
"url": "https://lengthen.me/"
},
{
"name": "URL Expander",
"type": "url",
"url": "http://urlex.org/"
},
{
"name": "URL Unshortener",
"type": "url",
"url": "http://www.urlunshortener.com/"
},
{
"name": "Where Does This Link Go?",
"type": "url",
"url": "http://wheredoesthislinkgo.com/"
},
{
"name": "KnowURL",
"type": "url",
"url": "http://www.knowurl.com/"
}]
},
{
"name": "Change Detection",
"type": "folder",
"children": [
{
"name": "VisualPing",
"type": "url",
"url": "http://visualping.io/"
},
{
"name": "Change Detection",
"type": "url",
"url": "http://www.changedetection.com/"
},
{
"name": "Check site availability Online",
"type": "url",
"url": "https://upcheck.online/"
},
{
"name": "Follow That Page",
"type": "url",
"url": "https://www.followthatpage.com/"
},
{
"name": "Urlwatch",
"type": "url",
"url": "https://github.com/thp/urlwatch"
},
{
"name": "WatchThatPage",
"type": "url",
"url": "http://watchthatpage.com/"
},
{
"name": "ChangeDetect",
"type": "url",
"url": "http://www.changedetect.com/"
}]
},
{
"name": "Social Analysis",
"type": "folder",
"children": [
{
"name": "Google Trends",
"type": "url",
"url": "https://www.google.com/trends/"
},
{
"name": "Reddit (M)",
"type": "url",
"url": "https://www.reddit.com/domain/%3CURLhere%3E"
}]
},
{
"name": "DNSSEC",
"type": "folder",
"children": [
{
"name": "DNSSEC Analyzer",
"type": "url",
"url": "http://dnssec-debugger.verisignlabs.com/"
},
{
"name": "DNSViz",
"type": "url",
"url": "http://dnsviz.net/"
}]
},
{
"name": "Cloud Resources",
"type": "folder",
"children": [
{
"name": "Public Buckets",
"type": "url",
"url": "https://buckets.grayhatwarfare.com/"
},
{
"name": "Online Port scanner",
"type": "url",
"url": "https://portscanner.online/"
},
{
"name": "CloudScraper (T)",
"type": "url",
"url": "https://github.com/jordanpotti/cloudscraper"
},
{
"name": "Check site availability Online",
"type": "url",
"url": "https://upcheck.online/"
}]
},
{
"name": "Vulnerabilities",
"type": "folder",
"children": [
{
"name": "Scanners",
"type": "folder",
"children": [
{
"name": "Sn1per (T)",
"type": "url",
"url": "https://github.com/1N3/Sn1per"
},
{
"name": "Online Nikto scanner",
"type": "url",
"url": "https://nikto.online/"
}]
},
{
"name": "Disclosure Sites",
"type": "folder",
"children": [
{
"name": "XSSposed.org",
"type": "url",
"url": "https://www.xssposed.org/"
},
{
"name": "Zone-H.org",
"type": "url",
"url": "http://zone-h.org/archive"
}]
},
{
"name": "RobotsDisallowed",
"type": "url",
"url": "https://github.com/danielmiessler/RobotsDisallowed"
}]
},
{
"name": "Tools",
"type": "folder",
"children": [
{
"name": "Belati (T)",
"type": "url",
"url": "https://github.com/aancw/Belati"
},
{
"name": "BlackWidow (T)",
"type": "url",
"url": "https://softbytelabs.com/wp/blackwidow/"
},
{
"name": "Burp Suite (T)",
"type": "url",
"url": "https://portswigger.net/burp/"
},
{
"name": "EyeWitness (T)",
"type": "url",
"url": "https://github.com/ChrisTruncer/EyeWitness"
},
{
"name": "IntelliTamper (T)",
"type": "url",
"url": "http://www.softpedia.com/get/Internet/Other-Internet-Related/IntelliTamper.shtml"
},
{
"name": "Hunting-New-Registered-Domains (T)",
"type": "url",
"url": "https://github.com/gfek/Hunting-New-Registered-Domains"
},
{
"name": "International Domain Name Conversion Tool",
"type": "url",
"url": "http://mct.verisign-grs.com/"
},
{
"name": "Online Nikto scanner",
"type": "url",
"url": "https://nikto.online/"
}]
},
{
"name": "Report Malicious Sites",
"type": "folder",
"children": [
{
"name": "Microsoft",
"type": "url",
"url": "https://www.microsoft.com/en-us/wdsi/support/report-unsafe-site-guest"
},
{
"name": "Google",
"type": "url",
"url": "https://safebrowsing.google.com/safebrowsing/report_phish/?hl=en"
}]
}]
},
{
"name": "IP & MAC Address",
"type": "folder",
"children": [
{
"name": "Geolocation",
"type": "folder",
"children": [
{
"name": "MaxMind Demo",
"type": "url",
"url": "https://www.maxmind.com/en/home"
},
{
"name": "IPv4/IPv6 lists by country code",
"type": "url",
"url": "http://ipverse.net/"
},
{
"name": "IP2Location.com",
"type": "url",
"url": "https://www.ip2location.com/demo"
},
{
"name": "IP Fingerprints",
"type": "url",
"url": "http://www.ipfingerprints.com/"
},
{
"name": "DB-IP",
"type": "url",
"url": "https://db-ip.com/"
},
{
"name": "IP Location Finder",
"type": "url",
"url": "https://www.iplocation.net/"
},
{
"name": "Info Sniper",
"type": "url",
"url": "http://www.infosniper.net/"
},
{
"name": "utrace",
"type": "url",
"url": "http://en.utrace.de/"
},
{
"name": "InfobyIP.com",
"type": "url",
"url": "https://www.infobyip.com/"
},
{
"name": "ipTRACKERonline",
"type": "url",
"url": "https://www.iptrackeronline.com/"
},
{
"name": "My IP Address",
"type": "url",
"url": "https://www.ipaddress.my/"
}]
},
{
"name": "Host / Port Discovery",
"type": "folder",
"children": [
{
"name": "urlscan.io",
"type": "url",
"url": "https://urlscan.io/search/#*"
},
{
"name": "Spyse",
"type": "url",
"url": "https://spyse.com/search/ip"
},
{
"name": "Shodan",
"type": "url",
"url": "https://www.shodan.io/"
},
{
"name": "Netlas.io",
"type": "url",
"url": "https://netlas.io/"
},
{
"name": "Portmap",
"type": "url",
"url": "https://portmap.com/"
},
{
"name": "Scans.io",
"type": "url",
"url": "https://scans.io/"
},
{
"name": "ZoomEye",
"type": "url",
"url": "https://www.zoomeye.org/"
},
{
"name": "Nmap (T)",
"type": "url",
"url": "https://nmap.org/download.html"
},
{
"name": "Online Port scanner",
"type": "url",
"url": "https://portscanner.online/"
},
{
"name": "Internet Census Search",
"type": "url",
"url": "http://www.exfiltrated.com/querystart.php"
},
{
"name": "Criminal IP Search",
"type": "url",
"url": "https://www.criminalip.io/"
},
{
"name": "Scanless (T)",
"type": "url",
"url": "https://github.com/vesche/scanless"
},
{
"name": "BinaryEdge (R)",
"type": "url",
"url": "https://www.binaryedge.io/"
},
{
"name": "Masscan (T)",
"type": "url",
"url": "https://github.com/robertdavidgraham/masscan"
},
{
"name": "ODIN (R)",
"type": "url",
"url": "https://www.getodin.com/"
}]
},
{
"name": "IPv4",
"type": "folder",
"children": [
{
"name": "ASlookup.com",
"type": "url",
"url": "https://aslookup.com/"
},
{
"name": "Port scanner Online",
"type": "url",
"url": "https://portscanner.online/"
},
{
"name": "Onyphe",
"type": "url",
"url": "https://www.onyphe.io/"
},
{
"name": "ODIN (R)",
"type": "url",
"url": "https://www.getodin.com/"
},
{
"name": "IPv4 CIDR Report",
"type": "url",
"url": "http://www.cidr-report.org/as2.0/"
},
{
"name": "Reverse.report",
"type": "url",
"url": "https://reverse.report/"
},
{
"name": "Team Cymru IP to ASN",
"type": "url",
"url": "https://asn.cymru.com/"
},
{
"name": "IP to ASN DB",
"type": "url",
"url": "https://iptoasn.com/"
},
{
"name": "Hacker Target - Reverse DNS",
"type": "url",
"url": "https://hackertarget.com/reverse-dns-lookup/"
}]
},
{
"name": "IPv6",
"type": "folder",
"children": [
{
"name": "IPv6 CIDR Report",
"type": "url",
"url": "http://www.cidr-report.org/v6/as2.0/"
}]
},
{
"name": "BGP",
"type": "folder",
"children": [
{
"name": "Hurricane Electric BGP Toolkit",
"type": "url",
"url": "http://bgp.he.net/"
},
{
"name": "BGP Malicious Content Ranking",
"type": "url",
"url": "http://bgpranking.circl.lu/"
},
{
"name": "BGPStream",
"type": "url",
"url": "https://bgpstream.com/"
},
{
"name": "PeeringDB",
"type": "url",
"url": "https://www.peeringdb.com/advanced_search"
},
{
"name": "BGP Tools",
"type": "url",
"url": "http://www.bgp4.as/tools"
}]
},
{
"name": "Reputation",
"type": "folder",
"children": [
{
"name": "IP Void",
"type": "url",
"url": "http://www.ipvoid.com/"
},
{
"name": "ExoneraTor",
"type": "url",
"url": "https://exonerator.torproject.org/"
},
{
"name": "Grey Noise",
"type": "url",
"url": "https://viz.greynoise.io/"
},
{
"name": "LiveIPMap IP Check",
"type": "url",
"url": "https://www.liveipmap.com/"
}]
},
{
"name": "Blacklists",
"type": "folder",
"children": [
{
"name": "Blocklist.de",
"type": "url",
"url": "http://www.blocklist.de/en/index.html"
},
{
"name": "DShield API",
"type": "url",
"url": "https://isc.sans.edu/api/"
},
{
"name": "FireHOL IP Lists ",
"type": "url",
"url": "http://iplists.firehol.org/"
},
{
"name": "Project Honey Pot",
"type": "url",
"url": "http://www.projecthoneypot.org/list_of_ips.php"
},
{
"name": "AbuseIPDB",
"type": "url",
"url": "https://www.abuseipdb.com/"
}]
},
{
"name": "Neighbor Domains",
"type": "folder",
"children": [
{
"name": "IP Fingerprints - Reverse IP Lookup",
"type": "url",
"url": "http://www.ipfingerprints.com/reverseip.php"
},
{
"name": "Bing IP Search (D)",
"type": "url",
"url": "http://www.bing.com/search?q=ip%3A8.8.8.8"
},
{
"name": "TCP/IP Utils - Domain Neighbors",
"type": "url",
"url": "http://www.tcpiputils.com/domain-neighbors"
},
{
"name": "MyIPNeighbors",
"type": "url",
"url": "http://www.my-ip-neighbors.com/"
}]
},
{
"name": "Protected by Cloud Services",
"type": "folder",
"children": [
{
"name": "CloudFlare Watch",
"type": "url",
"url": "http://www.crimeflare.com/"
},
{
"name": "CloudFail (T)",
"type": "url",
"url": "https://github.com/m0rtem/CloudFail"
}]
},
{
"name": "Wireless Network Info",
"type": "folder",
"children": [
{
"name": "WiGLE: Wireless Network Mapping",
"type": "url",
"url": "https://wigle.net/"
},
{
"name": "OpenCellid: Database of Cell Towers",
"type": "url",
"url": "https://opencellid.org/"
}]
},
{
"name": "Network Analysis Tools",
"type": "folder",
"children": [
{
"name": "Wireshark",
"type": "url",
"url": "https://www.wireshark.org/download.html"
},
{
"name": "NetworkMiner",
"type": "url",
"url": "https://www.netresec.com/?page=Networkminer"
},
{
"name": "Packet Total",
"type": "url",
"url": "http://www.packettotal.com/"
},
{
"name": "NetworkTotal",
"type": "url",
"url": "https://www.networktotal.com/"
}]
},
{
"name": "IP Loggers",
"type": "folder",
"children": [
{
"name": "Ki.tc",
"type": "url",
"url": "https://ki.tc"
},
{
"name": "Grabify",
"type": "url",
"url": "https://grabify.link"
},
{
"name": "IP Logger",
"type": "url",
"url": "https://iplogger.com/"
}]
}]
},
{
"name": "Images / Videos / Docs",
"type": "folder",
"children": [
{
"name": "Images",
"type": "folder",
"children": [
{
"name": "Search",
"type": "folder",
"children": [
{
"name": "Google Images",
"type": "url",
"url": "https://images.google.com/?gws_rd=ssl"
},
{
"name": "Bing Images",
"type": "url",
"url": "http://www.bing.com/images"
},
{
"name": "Yahoo Image Search",
"type": "url",
"url": "http://images.yahoo.com/"
},
{
"name": "FaceCheck Facial Recognition Search",
"type": "url",
"url": "https://facecheck.id/"
},
{
"name": "TinEye Reverse Image Search",
"type": "url",
"url": "http://tineye.com/"
},
{
"name": "PimEyes Face Search Engine",
"type": "url",
"url": "https://pimeyes.com/en"
},
{
"name": "Yandex Images",
"type": "url",
"url": "https://www.yandex.com/images/"
},
{
"name": "Baidu Images",
"type": "url",
"url": "http://shitu.baidu.com/"
},
{
"name": "Twitter Image Search (M)",
"type": "url",
"url": "https://twitter.com/search?q=%3Csearchterm%3E&src=typd&vertical=default&f=images"
},
{
"name": "Imgur Search",
"type": "url",
"url": "https://imgur.com/search"
},
{
"name": "Photobucket",
"type": "url",
"url": "http://photobucket.com/"
},
{
"name": "Karma Decay",
"type": "url",
"url": "http://karmadecay.com/"
},
{
"name": "Image Raider",
"type": "url",
"url": "https://www.imageraider.com/"
},
{
"name": "7Photos.net",
"type": "url",
"url": "http://7photos.net/"
},
{
"name": "Panoramio",
"type": "url",
"url": "http://www.panoramio.com/"
},
{
"name": "Current Location",
"type": "url",
"url": "http://current-location.com/"
},
{
"name": "Lakako Photo Search",
"type": "url",
"url": "http://www.lakako.com/"
},
{
"name": "CC Search",
"type": "url",
"url": "https://ccsearch.creativecommons.org/"
},
{
"name": "CamFind App",
"type": "url",
"url": "http://camfindapp.com/"
},
{
"name": "RevEye Reverse Image Search (T)",
"type": "url",
"url": "https://chrome.google.com/webstore/detail/reveye-reverse-image-sear/keaaclcjhehbbapnphnmpiklalfhelgf?hl=en"
},
{
"name": "SmugMug Search",
"type": "url",
"url": "http://www.smugmug.com/search"
},
{
"name": "ImageNet",
"type": "url",
"url": "http://image-net.org/"
},
{
"name": "Places2",
"type": "url",
"url": "http://places2.csail.mit.edu/explore.html"
},
{
"name": "Image Identification Project",
"type": "url",
"url": "https://www.imageidentify.com/"
},
{
"name": "SauceNAO",
"type": "url",
"url": "https://saucenao.com/"
},
{
"name": "Picarta",
"type": "url",
"url": "https://picarta.ai/"
},
{
"name": "FaceSeek Face Search Engine",
"type": "url",
"url": "https://faceseek.online"
}]
},
{
"name": "Instagram",
"type": "folder",
"children": [
{
"name": "Webstigram",
"type": "url",
"url": "http://websta.me/search"
},
{
"name": "Instagram",
"type": "url",
"url": "https://www.instagram.com/"
},
{
"name": "Mini Instagram",
"type": "url",
"url": "http://mininsta.net/"
},
{
"name": "Imgrab",
"type": "url",
"url": "https://imgrab.com/"
},
{
"name": "Tofo.me",
"type": "url",
"url": "https://tofo.me/"
}]
},
{
"name": "Flickr",
"type": "folder",
"children": [
{
"name": "Flickr",
"type": "url",
"url": "https://www.flickr.com/"
},
{
"name": "Flickr Map",
"type": "url",
"url": "https://www.flickr.com/map/"
},
{
"name": "My Pics Map",
"type": "url",
"url": "http://www.mypicsmap.com/"
},
{
"name": "idGettr",
"type": "url",
"url": "http://idgettr.com/"
},
{
"name": "Flickr Hive Mind",
"type": "url",
"url": "http://flickrhivemind.net/"
}]
},
{
"name": "Metadata",
"type": "folder",
"children": [
{
"name": "ExifTool (T)",
"type": "url",
"url": "http://www.sno.phy.queensu.ca/~phil/exiftool/"
},
{
"name": "ExifEditor",
"type": "url",
"url": "https://exifeditor.io"
},
{
"name": "Jeffrey's Exif Viewer",
"type": "url",
"url": "http://exif.regex.info/"
},
{
"name": "ExifViewer",
"type": "url",
"url": "http://www.exifviewer.org/"
},
{
"name": "Search by Exif",
"type": "url",
"url": "http://www.exif-search.com/"
},
{
"name": "ImgOps",
"type": "url",
"url": "http://imgops.com/"
},
{
"name": "Metapicz",
"type": "url",
"url": "http://metapicz.com/#landing"
},
{
"name": "JPEGsnoop (T)",
"type": "url",
"url": "http://www.impulseadventure.com/photo/jpeg-snoop.html"
},
{
"name": "GeoSetter",
"type": "url",
"url": "http://www.geosetter.de/en/"
},
{
"name":"xeuledoc - Fetch metadata about any public Google document",
"type":"url",
"url":"https://github.com/Malfrats/xeuledoc"
}]
},
{
"name": "Forensics",
"type": "folder",
"children": [
{
"name": "FotoForensics",
"type": "url",
"url": "http://fotoforensics.com/"
},
{
"name": "Ghiro (T)",
"type": "url",
"url": "https://github.com/ghirensics/ghiro"
},
{
"name": "Camera Trace",
"type": "url",
"url": "http://www.cameratrace.com/trace"
}]
},
{
"name": "OCR",
"type": "folder",
"children": [
{
"name": "Online OCR",
"type": "url",
"url": "http://www.free-ocr.com/"
},
{
"name": "i2OCR",
"type": "url",
"url": "http://www.i2ocr.com/"
},
{
"name": "New OCR",
"type": "url",
"url": "https://www.newocr.com/"
},
{
"name": "Online OCR",
"type": "url",
"url": "http://www.onlineocr.net/"
}]
},
{
"name": "Tools",
"type": "folder",
"children": [
{
"name": "Creepy (T)",
"type": "url",
"url": "http://www.geocreepy.com/"
}]
}]
},
{
"name": "Videos",
"type": "folder",
"children": [
{
"name": "Search",
"type": "folder",
"children": [
{
"name": "Google Videos",
"type": "url",
"url": "https://www.google.com/videohp?gws_rd=ssl"
},
{
"name": "Bing Videos",
"type": "url",
"url": "http://www.bing.com/videos"
},
{
"name": "Vimeo Search",
"type": "url",
"url": "https://vimeo.com/search?"
},
{
"name": "Internet Archive Videos",
"type": "url",
"url": "https://archive.org/details/opensource_movies"
},
{
"name": "Vines (D)",
"type": "url",
"url": "https://www.google.com/search?q=site:vine.co+%3Csearchterm%3E"
},
{
"name": "Dogpile Web Search",
"type": "url",
"url": "http://www.dogpile.com/"
},
{
"name": "Geo Search Tool",
"type": "url",
"url": "http://www.geosearchtool.com/"
},
{
"name": "blinkx Video Search",
"type": "url",
"url": "http://www.blinkx.com/"
},
{
"name": "Facebook Live Map",
"type": "url",
"url": "https://www.facebook.com/livemap#"
},
{
"name": "LiveLeak",
"type": "url",
"url": "https://www.liveleak.com/"
},
{
"name": "Metatube",
"type": "url",
"url": "http://www.metatube.com/"
},
{
"name": "Yahoo Video Search",
"type": "url",
"url": "http://video.search.yahoo.com/"
}]
},
{
"name": "Analyze / Record",
"type": "folder",
"children": [
{
"name": "DetURL",
"type": "url",
"url": "http://deturl.com/"
},
{
"name": "Print YouTube StoryBoard Instructions",
"type": "url",
"url": "http://www.labnol.org/internet/print-youtube-video/28217/"
},
{
"name": "Print Storyboard from Youtube",
"type": "url",
"url": "javascript:(function(){a=ytplayer.config.args.storyboard_spec;if(!a){alert(\"Sorry we cannot process this YouTube video. Could you please try another one\");exit();}b=a.split(\"|\");base=b[0].split(\"$\")[0]+\"2/M\";c=b[3].split(\"%23\");sigh=c[c.length-1];var imgs=\"\";t=ytplayer.config.args.length_seconds;n=Math.ceil(c[2]/(c[3]*c[4]));for(i=0;i \";}var title=ytplayer.config.args.title;msg=\"
OSINT Framework
Sorry, Your browser does not support JavaScript! Activate JavaScript on your browser or look for a compatible
browser to use the site.
(T) - Indicates a link to a tool that must be installed and run locally
(D) - Google Dork, for more information: Google Hacking
(R) - Requires registration
(M) - Indicates a URL that contains the search term and the URL itself must be edited manually
Toggle dark mode
Notes
OSINT framework focused on gathering information from free tools or resources. The intention is to help people find free OSINT resources. Some of the sites included might require registration or offer more data for $$$, but you should be able to get at least a portion of the available information for no cost.
I originally created this framework with an information security point of view. Since then, the response from other fields and disciplines has been incredible. I would love to be able to include any other OSINT resources, especially from fields outside of infosec. Please let me know about anything that might be missing!
For Update Notifications
Follow me on Twitter: @jnordine
Watch or star the project on Github: https://github.com/lockfale/osint-framework
Suggestions, Comments, Feedback
Feedback or new tool suggestions are extremely welcome! Please feel free to reach out on Twitter or submit an issue on Github.
================================================
FILE: public/js/arf.js
================================================
var margin = [20, 120, 20, 140],
width = 1280 - margin[1] - margin[3],
height = 800 - margin[0] - margin[2],
i = 0,
duration = 1250,
root;
var tree = d3.layout.tree()
.size([height, width]);
var diagonal = d3.svg.diagonal()
.projection(function(d) { return [d.y, d.x]; });
var vis = d3.select("#body").append("svg:svg")
.attr("width", width + margin[1] + margin[3])
.attr("height", height + margin[0] + margin[2])
.append("svg:g")
.attr("transform", "translate(" + margin[3] + "," + margin[0] + ")");
d3.json("arf.json", function(json) {
root = json;
root.x0 = height / 2;
root.y0 = 0;
function collapse(d) {
if (d.children) {
d._children = d.children;
d._children.forEach(collapse);
d.children = null;
}
}
/* function toggleAll(d) {
if (d.children) {
d.children.forEach(toggleAll);
toggle(d);
}
} */
root.children.forEach(collapse);
update(root);
});
function update(source) {
// var duration = d3.event && d3.event.altKey ? 5000 : 500;
// Compute the new tree layout.
var nodes = tree.nodes(root).reverse();
// Normalize for fixed-depth.
nodes.forEach(function(d) { d.y = d.depth * 180; });
// Update the nodes…
var node = vis.selectAll("g.node")
.data(nodes, function(d) { return d.id || (d.id = ++i); });
// Enter any new nodes at the parent's previous position.
var nodeEnter = node.enter().append("svg:g")
.attr("class", "node")
.attr("transform", function(d) { return "translate(" + source.y0 + "," + source.x0 + ")"; })
.on("click", function(d) { toggle(d); update(d); });
nodeEnter.append("svg:circle")
.attr("r", 1e-6)
.style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; });
nodeEnter.append('a')
.attr("target", "_blank")
.attr('xlink:href', function(d) { return d.url; })
.append("svg:text")
.attr("x", function(d) { return d.children || d._children ? -10 : 10; })
.attr("dy", ".35em")
.attr("text-anchor", function(d) { return d.children || d._children ? "end" : "start"; })
.text(function(d) { return d.name; })
.style("fill: rgb(0, 0, 0)", function(d) { return d.free ? 'black' : '#999'; })
.style("fill-opacity", 1e-6);
nodeEnter.append("svg:title")
.text(function(d) {
return d.description;
});
// Transition nodes to their new position.
var nodeUpdate = node.transition()
.duration(duration)
.attr("transform", function(d) { return "translate(" + d.y + "," + d.x + ")"; });
nodeUpdate.select("circle")
.attr("r", 6)
.style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; });
nodeUpdate.select("text")
.style("fill-opacity", 1);
// Transition exiting nodes to the parent's new position.
var nodeExit = node.exit().transition()
.duration(duration)
.attr("transform", function(d) { return "translate(" + source.y + "," + source.x + ")"; })
.remove();
nodeExit.select("circle")
.attr("r", 1e-6);
nodeExit.select("text")
.style("fill-opacity", 1e-6);
// Update the links…
var link = vis.selectAll("path.link")
.data(tree.links(nodes), function(d) { return d.target.id; });
// Enter any new links at the parent's previous position.
link.enter().insert("svg:path", "g")
.attr("class", "link")
.attr("d", function(d) {
var o = {x: source.x0, y: source.y0};
return diagonal({source: o, target: o});
})
.transition()
.duration(duration)
.attr("d", diagonal);
// Transition links to their new position.
link.transition()
.duration(duration)
.attr("d", diagonal);
// Transition exiting nodes to the parent's new position.
link.exit().transition()
.duration(duration)
.attr("d", function(d) {
var o = {x: source.x, y: source.y};
return diagonal({source: o, target: o});
})
.remove();
// Stash the old positions for transition.
nodes.forEach(function(d) {
d.x0 = d.x;
d.y0 = d.y;
});
}
// Toggle children.
function toggle(d) {
if (d.children) {
d._children = d.children;
d.children = null;
} else {
d.children = d._children;
d._children = null;
}
}
//Togle Dark Mode
function goDark() {
var element = document.body;
element.classList.toggle("dark-Mode");
}