Hannibal não era negro pelos padrões de hoje. Os romanos eram uma raça branca e se referiam aos africanos de pele mais escura como etíopes. A terra natal de Aníbal, Cartago, estava localizada no norte da África, e os residentes lá eram principalmente de pele mais clara. No entanto, alguns se casaram com os africanos de pele mais escura do sul.
Hannibal era cartaginense, e a raça dos cartagineses era um povo semita que veio do antigo Oriente Próximo. Árabes e judeus modernos compartilham uma cor de pele semelhante, então Aníbal mais provavelmente parecia árabe do que negro. Membros do mundo antigo aderiram mais a impérios do que à raça, então Hannibal é identificado por sua cidade natal.