"Iran" is Farsi for "Persian" in the same way that "Mexicano" is Spanish for "Mexican"
"Farsi" is Persian for "Persian" in the same way taht "Deutsche" is German for "German" and "Espanoil" is Spanish for "Spanish."
"Iran" was adopted by the Iranian government in the 1930s as a way of currying favor with Hitler's Germany. Iran had close ties with Nazi Germany because of its being associated with the ancestral homeland of the "Aryans" (see the wikpedia link in a post above). So, in a bit of nationalistic one-upmanship that was so common in that day, the government decided to mandate that the country no longer be referred to as Persia (even though that's the proper ENGLISH word to define the region) but as "Iran."
Basically it would be akin to a Greek person insisting that the world drop the name "Greece" and instead adopt "Thalanikos" (or whatever the Greek name for the country is) and insist that teh language is Thelanikan and the people are Thelanikans. (Note; I'm probably totally off on how Greeks refer to themselves, their language and their country, but you get the idea.)
That has stuck to this day, much to the detriment of present-day Iran, methinks. "Persia" is the English term associated with the great Persian empires of Xerxes and Cyrus the Great that duked it out with the Greeks. "Persian" is the name associated with the Gulf in the region. "Persian" is a type of cat, a type of architeccture, a type of rug, a type of food, etc. Insted, all of that has been shoved aside and to this day people don't know that when they run into an "Iranian" that hey're speaking to a descendent of one of the great Empires of history.