Hello my friends I can turn on led through local IP But my question is, How can I turn on led through external IP by useing arduino uno and Ethernet shield?
The network you are connecting your arduino to needs to be able to route external requests to your arduino. It's about playing with ports in your network at your internet box level.
If you don’t want to reconfigure your router etc. to direct external traffic to you Arduino, an alternative is to get the Arduino to poll an external database (MySQL etc.) where the state of the led is defined. A PHP/html form (or eqivalent) is used to manually update the led status in the SQL table, and another is used by the Arduino to determine the status of the Led.
As JML said you can open access to your routers port to allow access to your Arduino. I wrote a small post long ago to access a Raspberry pi running at my home, here is the post. This is not a good practice as people can gain entry to your network with necessary tools. I did this experiment to test it but I disabled after my testing.
Another most approachable option is, if you have a server in Azure or account in heroku, create a simple MQTT server using nodejs and your Arduino can subscribe to MQTT. Here is my another post about MQTT communication with Arduino