The gemara offers 3 explanations for why we don't say Hallel on Purim. 1. We don't say Hallel for a miracle that occurs outside of E.Y. after the Jews have already entered E.Y. 2. The reading of the Megilla is in place of the Hallel. 3. It wasn't a complete redemption since we remain slaves to Achashveirosh. The entire question as to why we don't say Hallel on Purim is predicated on the gemara's answer that we do say Hallel on Chanuka due to the miracle, even though it isn't called a Mo'ed and there is no prohibition of work. Therefore, all the distinctions as to why we don't say Hallel on Purim, do not apply to Chanuka. It is a miracle that occurred in E.Y., there is no reading to be in place of Hallel, and it was considered a "complete" redemption (although short lived - approx. 200 years). Rashi in Ta'anis 28b seems to understand that the reciting of Hallel on Chanuka would be considered d'oraysa, since the concept of saying of Hallel on a miracle is a Torah requirement.
The gemara challenges the first distinction between Chanuka and Purim from the fact that we say Hallel on the miracle of yetzias mitzrayim (and is forced to respond that prior to entering E.Y. we say hallel on chutz la'aretz miracles). It isn't clear from the gemara which Hallel it is referring to that is said for yetzias mitzrayim. The Turei Even in Megillah explains that it can't be referring to Hallel said on the first day of Pesach because that is a Hallel for the Yom Tov, not for the miracle. Therefore, he suggests that it is referring to the Hallel on the night of Pesach. The Mahartz Chiyus (here) understands the Turei Even to be speaking about the Hallel in shul on the night of Pesach because the Hallel in the Hagada is interrupted by the meal and wouldn't qualify as Hallel. The Maharatz Chiyus asks that to be referring to the Hallel said in shul on Pesach night is also difficult because the minhag ashkenazim based on the Rama is not to say it. It seems to me that the Turei Even is referring to the Hallel said within the Hagada. Although it is not said as a complete entity and wouldn't qualify as a "Hallel", it would nonetheless qualify as a "shira" and would prove that we do say shira even on a chutz la'aretz miracle.
The Rambam (Hil. Chanuka 3:6) paskens like the middle answer of the gemara - קריאתה זו היא הלילא. The Hallel of Chanuka is achieved by the reading of the megillah. This raises a big discussion in the poskim (sha'arei teshuva) in Hilchos Purim, if one doesn't have a megillah to read on Purim, should they recite the full Hallel (and perhaps even with a bracha). However, it seems that when the gemara says that megilla is in place of Hallel it doesn't just mean that it fulfills the obligation of Hallel, rather that reading the megilla is the expression that chazal instituted as the hallel for purim. Therefore, even if one were not to have access to a megilla they couldn't recite hallel with a bracha (and couldn't say a full hallel) since there was no takana to say hallel on purim.