Read from "list1" and list matches in "list2"

I want to print any matching IP addresse in List1 with List 2;

List 1

List of IP addresses;

161.85.58.210
250.57.15.129
217.23.162.249
74.76.129.101
30.221.177.237
3.147.200.59
170.58.142.64
127.65.109.33
150.167.242.146
223.3.20.186
25.181.180.99
2.55.199.32

List 2:

The lines in List2 is unstructured and contains other letters and characters.

183.223.16.161 #@%@#%Q!GHGAA
192.125.88.251 #@ahj*(&ederfG
@#$%@#$SDFFGRGW%$%%EQ
29.129.51.29
130.5.166.219
2345346hfdaae577R%R{}a
243.153.8.83
234546weh344343t
11.158.210.78
238.108.3.245
adf23523452
119.49.56.48 fwfqty$bbaaaght*(*(%%gf
170.58.142.64 rrwwbbhhhh
127.65.109.33 ##$666Hsssssssssssssss
$^&*^&*SAFRERTERTRE
17.72.208.209
%WH%HFNTY*&^&*$^&8
196.41.206.224
169.2.253.45$^tgwq
7.165.9.249

Result

170.58.142.64
127.65.109.33
$ grep -f f1 f2| cut -d" " -f1
170.58.142.64
127.65.109.33
awk 'NR==FNR{a[$1]++}NR!=FNR{if(a[$1]){print $1}}' list1 list2

With GNU grep:

grep -Fof list1 list2