Hannibal n'était pas noir selon les normes d'aujourd'hui. Les Romains étaient une race blanche et appelaient les Africains à la peau plus foncée des Éthiopiens. La patrie d'Hannibal, Carthage, était située en Afrique du Nord, et les habitants y avaient principalement la peau plus claire. Cependant, certains se sont mariés avec les Africains à la peau plus foncée du sud.
Hannibal était Carthaginois, et la race des Carthaginois était un peuple sémitique venu de l'ancien Proche-Orient. Les Arabes et les Juifs modernes partagent une couleur de peau similaire, donc Hannibal avait plus probablement l'air arabe que noir. Les membres du monde antique adhéraient plus aux empires qu'à la race, donc Hannibal est identifié par sa ville natale.