Update auto-updater.yml #14
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Extract IPs from URL | |
on: | |
push: | |
branches: | |
- main | |
workflow_dispatch: | |
schedule: | |
- cron: "*/30 * * * *" | |
jobs: | |
extract-ips: | |
runs-on: ubuntu-latest | |
steps: | |
# Checkout the repository | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
# Download the source file | |
- name: Download source file | |
run: curl -s -o trackers_all_ip.txt https://raw.githubusercontent.com/ngosang/trackerslist/refs/heads/master/trackers_all_ip.txt | |
# Download the source file with trackers | |
- name: Download source file with trackers | |
run: curl -s -o trackers_all_from_src1.txt https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all.txt | |
- name: Concatenate custom hosts | |
run: | | |
# Concatenate custom_hosts.txt to trackers_all.txt | |
cat custom_hosts.txt trackers_all_from_src1.txt > trackers_all.txt | |
echo "Combined trackers_all.txt with custom_hosts.txt" | |
cat trackers_all.txt | |
# Extract only the IPs from trackers_all_ip.txt | |
- name: Extract IP addresses from the IP file | |
run: | | |
grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' trackers_all_ip.txt >> extracted_ips_raw.txt | |
echo "Extracted IPs from file:" | |
cat extracted_ips_raw.txt | |
# Extract hostnames from the URLs and resolve to IP addresses | |
- name: Extract IP addresses from hosts in trackers_all.txt | |
run: | | |
echo "Extracting IPs from the host list..." | |
# Extract hostnames from :// URLs | |
grep -oP '(?<=://)[^:/]+' trackers_all.txt > hostnames.txt | |
# Resolve each hostname to IP addresses and save it | |
while IFS= read -r host; do | |
ips=$(dig +short $host) | |
if [ -n "$ips" ]; then | |
echo "Resolved $host to the following IPs:" | |
for ip in $ips; do | |
# Check if the resolved IP is a valid IPv4 address | |
if [[ "$ip" =~ ^([0-9]{1,3}\.){3}[0-9]{1,3}$ ]]; then | |
echo "$ip" | |
echo "$ip" >> host_to_ips.txt | |
else | |
echo "Skipping non-IP value: $ip" | |
fi | |
done | |
else | |
echo "Failed to resolve $host" | |
fi | |
done < hostnames.txt | |
# Combine new IPs with host to IP mappings | |
- name: Combine IPs | |
run: | | |
# Combine new extracted IPs with the previous list and ensure uniqueness | |
cat extracted_ips_raw.txt host_to_ips.txt > extracted_ips_unfiltered.txt | |
echo "Combined unfiltered unique IPs:" | |
cat extracted_ips_unfiltered.txt | |
- name: Filter Private IPs | |
run: | | |
# Filter out private IPs | |
grep -vE '^(10\.|172\.(1[6-9]|2[0-9]|3[01])\.|192\.168\.|127\.|169\.254\.|224\.|239\.|240\.|255\.)' extracted_ips_unfiltered.txt >> extracted_ips.txt | |
echo "Filtered out private IPs:" | |
cat extracted_ips.txt | |
# Ensure uniqueness of the extracted IPs | |
- name: Ensure uniqueness of extracted IPs | |
run: | | |
sort -u extracted_ips.txt -o extracted_ips.txt | |
echo "Unique extracted IPs:" | |
cat extracted_ips.txt | |
# Commit and push the combined extracted IPs file | |
- name: Commit and push changes | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
git config --global user.name "github-actions[bot]" | |
git config --global user.email "github-actions[bot]@users.noreply.github.com" | |
git add extracted_ips.txt | |
git commit -m "Update extracted IPs" | |
git push |