Deine eigene IP bekommst du in einem Netzwerk entweder per DHCP vom
Router o.ä. zugewiesen oder du suchst dir selbst in einem bestimmten
Bereich eine aus. Deine öffentliche IP braucht dich eigentlich gar nicht
zu interessieren wenn du hinter einem Router sitzt.
hacky meint, dass du die Domain, von der du Daten haben willst, in eine
IP auflösen musst und mit dem daran angeschlossenen Server zu
kommunizieren. Dazu gibt es DNS-Server im Internet, bei denen du
nachfragst und dann die IP zurück bekommst. Zum Anfang kannst du die
auch von Hand am Computer abfragen und dann fest einprogrammieren, aber
das dürfte dein kleinstes Problem sein.
Du schickst an den Server ein Datenpaket in dem du mit HTTP angibst,
welche Datei du haben willst. Dabei stehen u.a. deine lokale IP und die
IP des Servers im Header. Dein Router verpackt das ganze dann nochmal
mit der öffentlichen IP. Der Server versteht deine Nachricht und schickt
seinerseits ein Datenpaket an deine öffentliche IP, das dein Router dann
an dein Gerät weiterleitet und schon hast du deine Daten.
Ob das nun reiner Text, HTML oder MPEG4 ist, ist für die
Datenübertragung (relativ) egal, damit muss sich dann dein Controller
auseinandersetzten und das Interpretieren.