get-email-bridges.sh 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/bin/bash
  2. # If we don't already have the archive, download it
  3. if [ ! -f data/bridge-pool-assignments-2021-02.tar.xz ]; then
  4. curl -Lo data/bridge-pool-assignments-2021-02.tar.xz https://collector.torproject.org/archive/bridge-pool-assignments/bridge-pool-assignments-2021-02.tar.xz
  5. fi
  6. # Check that we have the right archive
  7. sha256sum -c data/bridge-pool-assignments.sha256 || exit 1
  8. # If we haven't already extracted the archive, extract it
  9. if [ ! -d data/bridge-pool-assignments-2021-02 ]; then
  10. cd data && tar xf bridge-pool-assignments-2021-02.tar.xz && cd ..
  11. fi
  12. # Extract obfs4 email bridges
  13. for i in $(seq 1 21); do
  14. grep " email " data/bridge-pool-assignments-2021-02/$(printf %02d $i)/* \
  15. | grep "obfs4" \
  16. | grep -Po '(?<=:)(.*?)(?= )'
  17. done | sort | uniq > data/obfs4-email-bridges
  18. # Get list of all bridges
  19. for i in $(seq 1 21); do
  20. grep -v "bridge-pool-assignment" data/bridge-pool-assignments-2021-02/$(printf %02d $i)/* \
  21. | grep -Po '(?<=:)(.*?)(?= )'
  22. done | sort | uniq > data/all-bridges
  23. # Count bridges in each category
  24. all_bridges=$(cat data/all-bridges | wc -l)
  25. obfs4_email_bridges=$(cat data/obfs4-email-bridges | wc -l)
  26. email_bridges=$(for i in $(seq 1 21); do grep -v "bridge-pool-assignment" data/bridge-pool-assignments-2021-02/$(printf %02d $i)/* | grep "email" | grep -Po '(?<=:)(.*?)(?= )';done | sort | uniq | wc -l)
  27. https_bridges=$(for i in $(seq 1 21); do grep -v "bridge-pool-assignment" data/bridge-pool-assignments-2021-02/$(printf %02d $i)/* | grep "https" | grep -Po '(?<=:)(.*?)(?= )';done | sort | uniq | wc -l)
  28. moat_bridges=$(for i in $(seq 1 21); do grep -v "bridge-pool-assignment" data/bridge-pool-assignments-2021-02/$(printf %02d $i)/* | grep "moat" | grep -Po '(?<=:)(.*?)(?= )';done | sort | uniq | wc -l)
  29. unallocated_bridges=$(for i in $(seq 1 21); do grep -v "bridge-pool-assignment" data/bridge-pool-assignments-2021-02/$(printf %02d $i)/* | grep "unallocated" | grep -Po '(?<=:)(.*?)(?= )';done | sort | uniq | wc -l)
  30. echo "Total number of bridges: ${all_bridges}"
  31. echo "Number of obfs4 email bridges: ${obfs4_email_bridges}"
  32. echo "Number of email bridges: ${email_bridges}"
  33. echo "Number of HTTPS bridges: ${https_bridges}"
  34. echo "Number of moat bridges: ${moat_bridges}"
  35. echo "Number of unallocated bridges: ${unallocated_bridges}"